0

所以在下面的代码中,我试图给出一个指令菜单。我遇到的问题是调用 MakeTurtle() 函数的“N”命令部分。我正在尝试将所有海龟添加到列表中(儿童 []),因此当我遍历列表时,它会使所有海龟同时移动。问题是我只能让一只乌龟移动(我创建的第一个)。以前我可以让它们全部移动,但如果我制作一个新的,它就会停止工作。任何人都可以帮忙吗?

home = makeWorld()
children = []


def MakeTurtle():
  newborn = makeTurtle(home)
  children.append(newborn)
  return newborn


def RoamingTurtles():
  command = raw_input("---> ")
  if command == 'N':
    MakeTurtle() 
    RoamingTurtles() 
  if command == 'R':
    for i in children:
      i.turn(90)
      RoamingTurtles()
  if command == 'L':
    for i in children:
      i.turn(-90)
      RoamingTurtles()
  if command == 'M':
    for i in children:
      i.forward()
      RoamingTurtles()
  if command == 'Q':  
     print 'End'
4

1 回答 1

0

您的问题似乎是您没有等到所有子项的循环完成后才调用该RoamingTurtle函数。这就是为什么只有一只海龟更新的原因。例如,您有:

for i in children:
  i.forward()
  RoamingTurtles()

但相反,你想要:

for i in children:
  i.forward()
RoamingTurtles()
于 2013-05-21T02:19:20.297 回答