Функция перезапуска гонки черепах Python

#python #random #restart

#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 ()?

Ответ №1:

turtles представляет собой массив turtle . Вам нужно выполнить итерацию массива и вызвать every clear() .

 def restart():
    global turtles
    while race():
        for turtle in turtles:
            turtle.clear()