Установка turtle.speed()
на любое значение, в том числе в результате random.randint()
, не является ни необходимым, ни достаточным. Это просто удобно. Ниже мой минималистский гоночный код черепа. Метод turtle.speed()
используется как место, чтобы спрятать скорость черепахи, но если вы меняете:
turtle.forward(turtle.speed() + 1)
фиксированное значение:
turtle.forward(10)
вы увидите, что черепахи все движутся с одинаковой скоростью , независимо от настройки turtle.speed()
. Значение turtle.speed()
определяет только то, как быстро черепаха рисует свое обновление. В конечном счете различие в аргументе к turtle.forward()
контролировать количество движения вперед:
from random import randint
from turtle import Turtle, Screen
TURTLE_SIZE = 20
MAXIMUM_SPEED = 10
DEFAULTS = {'shape':"turtle", 'visible': False}
screen = Screen()
starting_line = TURTLE_SIZE - screen.window_width()/2
finish_line = screen.window_width()/2 - TURTLE_SIZE - MAXIMUM_SPEED
turtles = dict(red=Turtle(**DEFAULTS), green=Turtle(**DEFAULTS), blue=Turtle(**DEFAULTS))
for i, (color, turtle) in enumerate(turtles.items()):
turtle.color(color)
turtle.penup()
turtle.goto(starting_line, i * TURTLE_SIZE)
turtle.speed(randint(0, MAXIMUM_SPEED))
turtle.showturtle()
racing = True
while racing:
for turtle in turtles.values():
turtle.forward(turtle.speed() + 1)
if turtle.xcor() >= finish_line:
racing = False
break
screen.exitonclick()
Чтобы черепаху гонку, что это какой-нибудь более сложным, вы, вероятно, должны работать с ontimer()
события, чтобы позволить им двигаться независимо друг от друга.
Возможная Дубликат [Генерация случайных чисел от 0 до 9] (http://stackoverflow.com/questions/3996904/generate-random-integers-between-0-and-9) – TemporalWolf