如何让两只或多只同时执行一项任务?



我对这个程序的目标是习惯python内置的"turtle"方法。我的目标是编程四只(忍者(同时在一个广场上行走。虽然我的程序中没有绝对的错误,但我希望程序显示海龟同时行走(而不是相互碰撞(。起初,我试图在同一行上用逗号分隔四个变量 - 但这并没有改变任何东西。或者,我使用"+"来分隔每个变量 - 这不起作用。然后我查了一下如何同时移动两只。但是,由于这些程序中的大多数都涉及赛车,因此某些方法不起作用。

import turtle
leonardo = turtle.Turtle()
rafael = turtle.Turtle()
michelangelo = turtle.Turtle()
donatello = turtle.Turtle()
leonardo.shape("turtle")
rafael.shape("turtle")
michelangelo.shape("turtle")
donatello.shape("turtle")
michelangelo.left(90)
donatello.right(90)
leonardo.forward(250)
rafael.backward(250)
donatello.forward(250)
michelangelo.forward(250)
# Better if I could make all four turtles turn at the same time
michelangelo.left(45), leonardo.left(135), rafael.right(45), donatello.left(135)
turtle_speed = 1
angle = float(input("Which angle would you like the turtles to face? "))
for i in range(1):
leonardo.speed(1)
leonardo.pencolor("light green")
leonardo.forward(353.5533905932738)
leonardo.left(angle)
leonardo.forward(353.5533905932738)
leonardo.left(angle)
leonardo.forward(353.5533905932738)
leonardo.left(angle)
leonardo.forward(353.5533905932738)
leonardo.left(angle)
rafael.pencolor("gold")
rafael.forward(353.5533905932738)
rafael.left(angle)
rafael.forward(353.5533905932738)
rafael.left(angle)
rafael.forward(353.5533905932738)
rafael.left(angle)
rafael.forward(353.5533905932738)
rafael.left(angle)
michelangelo.pencolor("turquoise")
michelangelo.left(90)
michelangelo.forward(353.5533905932738)
michelangelo.left(angle)
michelangelo.forward(353.5533905932738)
michelangelo.left(angle)
michelangelo.forward(353.5533905932738)
michelangelo.left(angle)
michelangelo.forward(353.5533905932738)
michelangelo.left(angle)
donatello.pencolor("white")
donatello.forward(353.5533905932738)
donatello.left(angle)
donatello.forward(353.5533905932738)
donatello.left(angle)
donatello.forward(353.5533905932738)
donatello.left(angle)
donatello.forward(353.5533905932738)
donatello.left(angle)

turtle.done()

你只需要让每只一次移动一点。 我做了一些更改,展示了如何通过运动来做到这一点:

import turtle
leonardo = turtle.Turtle()
rafael = turtle.Turtle()
michelangelo = turtle.Turtle()
donatello = turtle.Turtle()
ninjas = [ leonardo, rafael, michelangelo, donatello ]
angle = 0
for t in ninjas:
t.shape("turtle") 
t.right(angle)
t.forward(250)
angle += 90

turtle_speed = 1
leonardo.pencolor("light green")
rafael.pencolor("gold")
michelangelo.pencolor("turquoise")
donatello.pencolor("white")
angle = float(input("Which angle would you like the turtles to face? "))
turns = 4
while turns>0:
turns -= 1  
move = 350
while move>0:
for t in ninjas:
t.forward(5)
move -= 5
for t in ninjas:
t.left(angle)
turtle.done()

最新更新