2017-02-10 3 views
0

私はタートルレーシングゲーム(Python - Turtleを使用)を作ろうとしていますが、コードを実行するたびに各タートルのランダムな速度を設定する方法はわかりません(タートルxが毎回勝てないように)コードを実行するたびにタートルのランダム速度を設定するにはどうすればよいですか?

#define race fuction. Move each Turtle fd(random number between 2-10) 
red.pensize(10) 
blue.pensize(10) 
green.pensize(10) 
red.speed(random) 
blue.speed(random) 
green.speed(random) 
+3

[0と9の間で生成したランダム整数(http://stackoverflow.com/questions/3996904/generate-random-integers-between-0-and-9)の可能性の重複 – TemporalWolf

答えて

0

random.randint()の結果を含む、任意の値にturtle.speed()を設定することは必要でも十分でもありません。それは単に便利です。以下は私のミニマルなカメレーシングコードです。 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()イベントと連携する必要があります。

enter image description here

関連する問題