如何解决Python海龟赛重启功能
我刚刚完成了我的第一次海龟赛跑,还剩下一个任务,一个重启功能。我只是无法让它按我想要的方式工作。目标是输出一个问题:重启? y 或 n,这将重新启动 Race() 函数。我真的需要你们的帮助。
from turtle import *
from random import randint
Andi = Turtle("turtle")
Andi.color("red")
Andi.shape("turtle")
Andi.penup()
Andi.goto(-300,200)
Andi.pendown()
Dom = Turtle("turtle")
Dom.color("green")
Dom.shape("turtle")
Dom.penup()
Dom.setpos(-300,180)
Dom.pendown()
Pete = Turtle("turtle")
Pete.color("blue")
Pete.shape("turtle")
Pete.penup()
Pete.setpos(-300,160)
Pete.pendown()
Emir = Turtle("turtle")
Emir.color("yellow")
Emir.shape("turtle")
Emir.penup()
Emir.setpos(-300,220)
Emir.pendown()
windowcolor=Screen()
windowcolor.bgcolor("black")
turtles = [Emir,Pete,Dom,Andi]
def race():
global turtles
winner = False
finishline = 300
while not winner:
for current_turtle in turtles:
move = randint(0,10)
current_turtle.forward(move)
xcor = current_turtle.xcor()
if (xcor > finishline):
winner = True
current_turtle.forward(0)
winner_color = current_turtle.color()
print('The winner is',winner_color[1])
def restart():
global turtles
while race():
turtle.clear()
race ()
restart ()
while True:
while True:
answer = str(input("Restart? (y/n): "))
if answer in ("y","n"):
break
print("Invalid awnser")
if answer == "y":
race
else:
print("Shutting off")
break
windowcolor.mainloop()
while True:
windowcolor.update()
我在 restart() 函数中做错了什么?
解决方法
turtles
是一个 turtle
数组。您需要迭代数组并调用每个 clear()
。
def restart():
global turtles
while race():
for turtle in turtles:
turtle.clear()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。