import turtle
import random
import time
def turtle_race():
# Настройка экрана
screen = turtle.Screen()
screen.title("Черепашьи бега")
screen.bgcolor("lightgreen")
screen.setup(width=800, height=600)
# Рисуем дорожки
track_drawer = turtle.Turtle()
track_drawer.speed(0)
track_drawer.penup()
start_x = -300
finish_x = 300
num_turtles = 5
spacing = 100
# Верхняя граница дорожки
track_drawer.goto(start_x, 200)
track_drawer.pendown()
track_drawer.goto(finish_x, 200)
track_drawer.penup()
# Остальные дорожки
for i in range(num_turtles):
y = 150 - i * spacing
track_drawer.goto(start_x, y)
track_drawer.pendown()
track_drawer.goto(finish_x, y)
track_drawer.penup()
# Линия финиша
track_drawer.color("black", "red")
track_drawer.goto(finish_x, 210)
track_drawer.pendown()
track_drawer.begin_fill()
for _ in range(2):
track_drawer.forward(10)
track_drawer.right(90)
track_drawer.forward(410) # 210 - (-200) = 410
track_drawer.right(90)
track_drawer.end_fill()
track_drawer.hideturtle()
# Создаём черепах
colors = ["red", "blue", "green", "orange", "purple"]
turtles = []
start_y = 175
for i in range(num_turtles):
t = turtle.Turtle(shape="turtle")
t.color(colors[i])
t.penup()
t.goto(start_x, start_y - i * spacing)
turtles.append(t)
# Запуск гонки
winner = None
while not winner:
for t in turtles:
distance = random.randint(1, 20)
t.forward(distance)
# Проверяем, пересекла ли черепаха финиш
if t.xcor() >= finish_x:
winner = t
break
time.sleep(0.05) # Задержка для плавности анимации
# Объявление победителя
winner_index = turtles.index(winner)
screen.clear()
screen.bgcolor("lightblue")
announcement = turtle.Turtle()
announcement.hideturtle()
announcement.penup()
announcement.goto(0, 0)
announcement.write(
f"Победитель — черепаха {colors[winner_index].upper()}!\n"
"Нажмите пробел для выхода",
align="center",
font=("Arial", 24, "bold")
)
# Выход по нажатию пробела
screen.listen()
screen.onkey(screen.bye, "space")
screen.mainloop()
# Запуск гонки
turtle_race()