python海龟如果出错
我想用海龟和关卡制作蟒蛇游戏。所以,我检查了分数来决定用户的级别,但是,当程序运行[如果语句]时,我已经做的乌龟的移动会很慢。我不知道这个错误的原因以及如何解决。我需要你的帮助python海龟如果出错,python,if-statement,turtle-graphics,Python,If Statement,Turtle Graphics,我想用海龟和关卡制作蟒蛇游戏。所以,我检查了分数来决定用户的级别,但是,当程序运行[如果语句]时,我已经做的乌龟的移动会很慢。我不知道这个错误的原因以及如何解决。我需要你的帮助 def level(): global speed if 0 <= score < 5: mypen.penup() mypen.hideturtle() mypen.setposition(-290, 310) levelstring = "level: 1" myp
def level():
global speed
if 0 <= score < 5:
mypen.penup()
mypen.hideturtle()
mypen.setposition(-290, 310)
levelstring = "level: 1"
mypen.write(levelstring, False, align="left", font=('Consolas', 15, 'bold'))
speed += 1
if 5 <= score < 10:
mypen.penup()
mypen.hideturtle()
mypen.setposition(-290, 310)
levelstring = "level: 2"
mypen.write(levelstring, False, align="left", font=('Consolas', 15, 'bold'))
speed += 2
elif 10 <= score:
exit()
下面是我根据您提供的代码扩展的工作示例。它在每一个分数和每一个级别上加速了自动机。看看它是否按照您的意愿运行:
from turtle import Turtle, Screen
from random import randint
FONT = ('Consolas', 15, 'bold')
def check_level():
global speed, level
score_pen.undo()
score_pen.write("Score: %s" % score, False, align='right', font=FONT)
if 0 <= score < 5:
speed += 1
level = 1
elif 5 <= score < 10:
speed += 3
level = 2
alex.speed('fastest')
elif score >= 10:
screen.bye()
level_pen.undo()
level_pen.write("Level: %s" % level, False, align='left', font=FONT)
def move_alex():
global score
alex.forward(speed)
#boundary checking
if alex.xcor() > 300 or alex.xcor() < -300:
alex.right(180)
if alex.ycor() > 300 or alex.ycor() < -300:
alex.right(180)
# boundary checking
if ts.xcor() > 300 or ts.xcor() < -300:
ts.right(180)
if ts.ycor() > 300 or ts.ycor() < -300:
ts.right(180)
# collision.checking
if ts.distance(alex) < 20:
score += 1
check_level()
alex.hideturtle()
alex.setposition(randint(-300, 300), randint(-300, 300))
alex.showturtle()
screen.ontimer(move_alex, 100)
def move_right():
screen.onkey(None, 'Right')
ts.right(45)
screen.onkey(move_right, 'Right')
def move_left():
screen.onkey(None, 'Left')
ts.left(45)
screen.onkey(move_left, 'Left')
def move_forward():
screen.onkey(None, 'Up')
ts.forward(speed * 1.25)
screen.onkey(move_forward, 'Up')
screen = Screen()
screen.setup(660, 660)
score = 0
level = 1
speed = 5
# Draw the score
score_pen = Turtle(visible=False)
score_pen.penup()
score_pen.setposition(290, 310)
score_pen.write("Score: %s" % score, False, align='right', font=FONT)
level_pen = Turtle(visible=False)
level_pen.penup()
level_pen.setposition(-290, 310)
level_pen.write("Level: %s" % level, False, align='left', font=FONT)
alex = Turtle('square', visible=False)
alex.speed('normal')
alex.penup()
alex.setheading(45)
alex.setposition(randint(-300, 300), randint(-300, 300))
alex.showturtle()
ts = Turtle('turtle')
ts.speed('fastest')
ts.penup()
screen.onkey(move_right, 'Right')
screen.onkey(move_left, 'Left')
screen.onkey(move_forward, 'Up')
move_alex()
screen.listen()
screen.mainloop()
这只是一个几乎不可玩的游戏的示例-显然需要努力才能完成它,并使其像蛇一样。寻求调试帮助的问题此代码为什么不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。您发布的代码不可运行,因此也不可调试。请发布错误。如果您搞乱了turtles。。你会得到追踪系统的毒液,告诉你有些东西有毒。修正代码!并开始使用编辑器,例如IDLE、IPyton或komodo edit!对不起,这是我第一次发布代码,整个代码太长,无法发布。所以,我不知道如何显示我的错误代码
from turtle import Turtle, Screen
from random import randint
FONT = ('Consolas', 15, 'bold')
def check_level():
global speed, level
score_pen.undo()
score_pen.write("Score: %s" % score, False, align='right', font=FONT)
if 0 <= score < 5:
speed += 1
level = 1
elif 5 <= score < 10:
speed += 3
level = 2
alex.speed('fastest')
elif score >= 10:
screen.bye()
level_pen.undo()
level_pen.write("Level: %s" % level, False, align='left', font=FONT)
def move_alex():
global score
alex.forward(speed)
#boundary checking
if alex.xcor() > 300 or alex.xcor() < -300:
alex.right(180)
if alex.ycor() > 300 or alex.ycor() < -300:
alex.right(180)
# boundary checking
if ts.xcor() > 300 or ts.xcor() < -300:
ts.right(180)
if ts.ycor() > 300 or ts.ycor() < -300:
ts.right(180)
# collision.checking
if ts.distance(alex) < 20:
score += 1
check_level()
alex.hideturtle()
alex.setposition(randint(-300, 300), randint(-300, 300))
alex.showturtle()
screen.ontimer(move_alex, 100)
def move_right():
screen.onkey(None, 'Right')
ts.right(45)
screen.onkey(move_right, 'Right')
def move_left():
screen.onkey(None, 'Left')
ts.left(45)
screen.onkey(move_left, 'Left')
def move_forward():
screen.onkey(None, 'Up')
ts.forward(speed * 1.25)
screen.onkey(move_forward, 'Up')
screen = Screen()
screen.setup(660, 660)
score = 0
level = 1
speed = 5
# Draw the score
score_pen = Turtle(visible=False)
score_pen.penup()
score_pen.setposition(290, 310)
score_pen.write("Score: %s" % score, False, align='right', font=FONT)
level_pen = Turtle(visible=False)
level_pen.penup()
level_pen.setposition(-290, 310)
level_pen.write("Level: %s" % level, False, align='left', font=FONT)
alex = Turtle('square', visible=False)
alex.speed('normal')
alex.penup()
alex.setheading(45)
alex.setposition(randint(-300, 300), randint(-300, 300))
alex.showturtle()
ts = Turtle('turtle')
ts.speed('fastest')
ts.penup()
screen.onkey(move_right, 'Right')
screen.onkey(move_left, 'Left')
screen.onkey(move_forward, 'Up')
move_alex()
screen.listen()
screen.mainloop()