【发布时间】:2021-02-25 23:20:10
【问题描述】:
所以,我最近刚开始接触 Python,在我的课堂上,我的任务是让 10 只乌龟都在移动并且应该在终点线停下来进行一场乌龟赛跑。我被指示为海龟制作一个列表,并有一个 while 循环让它们移动随机数量,并有一个嵌套的 if 循环来检查获胜者。我无法让所有海龟同时移动,当我运行我的代码时,它会一个接一个地移动海龟,而不是一起移动,有什么想法吗?
import turtle as trtl
import random as rand
zoomers = []
zom = [0,1,2,3,4,5,6,7,8,9]
tloc = -130
trtl.penup()
trtl.goto(-150, 150)
trtl.pendown()
trtl.goto(-150,-140)
trtl.penup()
trtl.goto(180,150)
trtl.pendown()
trtl.goto(180,-140)
trtl.hideturtle()
for z in zom:
zoom = trtl.Turtle("turtle")
zoom.penup()
zoom.goto(-150,-tloc)
tloc += 25
robux = rand.randrange(0,20)
zoomers.append(zoom)
for n in zoomers:
cash = 0
while cash < 100:
zoom.forward(robux)
cash = cash + 1
if zoom.xcor() == 180:
print("We have a winner!")
break```
【问题讨论】:
-
您是否假设它们平行移动,例如如果两只海龟在同一个 while 循环迭代中到达终点线,它们是 both 赢家吗?还是会按顺序进行,例如首先找到阈值的乌龟获胜
-
请提供预期的minimal, reproducible example。显示中间结果与您的预期不同的地方。我们应该能够复制和粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。在这种情况下,“这不符合我的要求”是不够的。
-
目前还不清楚您希望它如何工作。看来您在测试之前编写了大约 30 行代码。请正确描述您的方法:您的三重嵌套循环(for-for-while)似乎与您想要的结果背道而驰。您的
while循环只是一个 100 次迭代的循环;你在做什么,为什么不使用for?恐怕“解决”您描述的问题将涉及为您编写程序的主体,这超出了这里的范围。 -
我必须使用 while 语句使它们向前移动一个随机量,而 while 循环为 100 是我放置的可能会更改为更低的值。
标签: python turtle-graphics python-turtle