Я вижу ряд проблем: вы добавили слишком много мелких деталей, прежде чем решать проблемы с большой картинкой - должно быть наоборот; вы создали структуру данных для представления ваших игроков, но в конце концов вы ее не использовали; вы разработали это для фиксированного количества игроков, тогда как вам действительно следовало разрабатывать его для неизвестного (но разумного) количества игроков, чтобы ваш код был честным. устраните указанные выше проблемы:
from turtle import Screen, Turtle
from random import randint
NUMBER_PLAYERS = 3
POLE = 300
FONT = ('Arial', 16, 'normal')
players = []
for player in range(1, NUMBER_PLAYERS + 1):
name = input("\nPlayer " + str(player) + " enter name: ")
color = input("Player " + str(player) + " enter color: ")
players.append({'Name': name, 'Color': color})
for number, player in enumerate(players, 1):
print("\nPlayer", number, "information:", player)
screen = Screen()
height = screen.window_height()
lane_height = height / (NUMBER_PLAYERS + 1) # divide the vertical space into lanes
marker = Turtle()
marker.hideturtle()
marker.speed('fastest')
for number, player in enumerate(players, 1):
y_coordinate = height/2 - lane_height * number
marker.penup()
marker.setpos(-POLE, y_coordinate + 30)
marker.write(player['Name'], align='center', font=FONT)
marker.setpos(POLE, y_coordinate - 30)
marker.pendown()
marker.circle(30)
tortoise = Turtle()
tortoise.hideturtle()
tortoise.shape('turtle')
tortoise.speed('slowest')
tortoise.penup()
tortoise.goto(-POLE, y_coordinate)
tortoise.pendown()
tortoise.color(player['Color'])
tortoise.showturtle()
player['Turtle'] = tortoise
while True:
for number, player in enumerate(players, 1):
y_coordinate = height/2 - lane_height * number
print()
print(player['Name'], 'is now rolling')
roll = randint(1, 6)
print('The number on the die is:', roll)
player['Turtle'].forward(roll * 5)
if player['Turtle'].distance(POLE, y_coordinate) < 30:
print()
print(player['Name'], "is the winner!")
break
else: # no break
continue
break # yes, this is a tricky loop -- take your time with it
screen.exitonclick()
введите описание изображения здесь