答案是你不移动邮票,你移动海龟!邮票必须移除并重新制作,而海龟可以移动而无需重新绘制:import random
import turtle
STAMP_SIZE = 20
SQUARE_SIZE = 15
FINISH_LINE = 200
COLOR_LIST = ['red', 'blue', 'green', 'brown', 'yellow', 'purple']
def draw_start():
turtle.speed('fastest')
turtle.penup()
turtle.setpos(-350, 300)
turtle.pendown()
turtle.right(90)
turtle.forward(520)
def draw_finish():
turtle.shape('square')
turtle.shapesize(SQUARE_SIZE / STAMP_SIZE)
turtle.penup()
for i in range(18):
turtle.setpos(FINISH_LINE, (300 - (i * SQUARE_SIZE * 2)))
turtle.stamp()
for j in range(18):
turtle.setpos(FINISH_LINE + SQUARE_SIZE, ((300 - SQUARE_SIZE) - (j * SQUARE_SIZE * 2)))
turtle.stamp()
turtle.hideturtle()
def move_turtle(who):
who.forward(random.randint(1, 10))
if who.xcor() < FINISH_LINE:
turtle.ontimer(lambda who=who: move_turtle(who), 50)
print('Welcome to Turtle Racing!')
number_of_turtles = int(input('How many turtles (between 3 and 6): '))
draw_start()
draw_finish()
turtle_list = []
for idx in range(number_of_turtles):
racer = turtle.Turtle('turtle', visible=False)
racer.speed('fastest') # affects drawing speed, not forward motion
racer.penup()
racer.setpos(-350 - STAMP_SIZE, 280 - idx * 90)
racer.color(COLOR_LIST[idx])
racer.showturtle()
turtle_list.append(racer)
for racer in turtle_list:
turtle.ontimer(lambda who=racer: move_turtle(who), 100)
turtle.exitonclick()
冲压加速的地方是在使你的终点线,如果你试图画它需要更长的时间。
请注意,虽然您的原始代码是Python 2,但我的答案是Python 3,因此如果您仍然使用旧版本,可能需要调整一些内容。