python - 如何在我的海龟游戏中添加高分系统?
问题描述
我对 Python 还是很陌生,但我一直在使用海龟开发一款游戏,您必须在特定时间范围内单击一堆圆圈以获得分数。我想创建一个高分系统,人们也可以在其中决定他们的用户名,但是我用谷歌搜索的所有地方都太复杂了,我无法理解,所以我不知道如何在我的代码中实现它。
import turtle
from random import random, randint
import time
CURSOR_SIZE = 20
score=0
while True:
diffSetting=int(input("Set the difficulty(1-5,1 being easiest and 5 being hardest): "))
if diffSetting == 1:
difficulty = 5
break
elif diffSetting == 2:
difficulty = 8
break
elif diffSetting == 3:
difficulty = 12
break
elif diffSetting == 4:
difficulty = 16
break
elif diffSetting == 5:
difficulty = 20
break
else:
print("Please choose a difficulty setting between 1 to 5.")
def addscore():
global score
score += 1
def my_circle(color):
if diffSetting==1:
radius = (50)
elif diffSetting==2:
radius = (40)
elif diffSetting==3:
radius = (30)
elif diffSetting==4:
radius = (20)
elif diffSetting==5:
radius = (10)
circle = turtle.Turtle('circle', visible=False)
circle.shapesize(radius / CURSOR_SIZE)
circle.color(color)
circle.penup()
while True:
nx = randint(2 * radius - width // 2, width // 2 - radius * 2)
ny = randint(2 * radius - height // 2, height // 2 - radius * 2)
circle.goto(nx, ny)
for other_radius, other_circle in circles:
if circle.distance(other_circle) < 2 * max(radius, other_radius):
break
else:
break
circle.showturtle()
circle.onclick(lambda x,y,t=circle: (circle.hideturtle(), addscore()))
return radius, circle
screen = turtle.Screen()
screen.bgcolor("lightgreen")
screen.title("Speed Clicker")
width, height = screen.window_width(), screen.window_height()
circles = []
gameLength = 30
startTime = time.time()
while True:
time.sleep(1/difficulty)
rgb = (random(), random(), random())
timeTaken = time.time() - startTime
circles.append(my_circle(rgb))
screen.title('SCORE: {}, TIME LEFT: {}'.format(score,int(round(gameLength - timeTaken,0))))
if time.time() - startTime > gameLength:
for turtle in screen.turtles():
turtle.reset()
break
screen.title('GG! FINAL SCORE: {}'.format(score))
screen.mainloop()
我一直在尝试将分数保存在文本文件中,但我将如何保存用户名?
解决方案
- 您必须将分数存储在您喜欢护城河的数据库或文件中
- 完成游戏后,您必须使用存储的分数检查当前分数
- 如果您当前的分数低于您存储的分数,则不执行任何操作或重新开始游戏
- 否则你必须用以前存储的分数更新你的高分
您必须了解商店数据
推荐阅读
- amazon-web-services - 从 AWS EC2 到 RDS(postgres) 实例的端口转发
- java - Parcelable Creator 语法
- sql-server - TF30040: 未正确配置数据库。请联系您的 Team Foundation Server 管理员。需要的建议
- snowflake-cloud-data-platform - 尝试使用 ARRAY_CONTAINS 连接表会产生永无止境的运行
- node.js - 如何从当前获取下一个重定向 url
- android - 将搜索结果自动填充到 Firebase
- python - 是否可以创建一个列表,其中的类型不能更改,但值本身可以?
- oauth-2.0 - CAS 6.1.4 的 OAuth2:PKCE 授权码授权类型是否需要客户端密码?
- google-apps-script - formatDate 公式不可能出现日期问题
- karate - 从 Combo React JS 应用程序中选择项目