0

到目前为止我有这个:

print('a skeleton comes into view, the hiker must have been dehydrated.')
print ('he was wearing a Yankees HAT, to the right of his body he set his BACKPACK         and WOODEN WALKING STICK next to the wall')
input2 = raw_input ("You may SEARCH____(object),PICK UP____, USE____ ON_____, or GO ON: ")
if input2 == 'PICK UP HAT':
    print 'taken'
    hat = hat+1
    input2 = raw_input ("You may SEARCH____(object),PICK UP____, USE____ ON_____, or GO ON: ")
#
#
#

if input2 == 'SEARCH BACKPACK':
    print ("there are OLD CLOTHES in here as well as a TARP")
    input2 = raw_input ("You may SEARCH____(object),PICK UP____, USE____ ON_____, or GO ON: ")


elif input2 == 'PICK UP CLOTHES':
    print ("tsken")
    input2 = raw_input ("You may SEARCH____(object),PICK UP____, USE____ ON_____, or GO ON: ")


elif input2 == 'PICK UP TARP':
    print ("taken")
    input2 = raw_input ("You may SEARCH____(object),PICK UP____, USE____ ON_____, or GO ON: ")


elif input2 == 'PICK UP BONE':
    print ("taken")
    input2 = raw_input ("You may SEARCH____(object),PICK UP____, USE____ ON_____, or GO ON: ")


elif input2 == 'PICK UP WOODEN WALKING STICK':
    print "Taken"
    input2 = raw_input ("You may SEARCH____(object),PICK UP____, USE____ ON_____, or GO ON: ")


elif input2 == 'GO ON':
    input3 = raw_input ("left or right: ")
    if input3 == 'left':
        import module3
    elif input3 == 'right':
        import module4

我无法理解是否应该在这里创建一个 while 或 for 语句。

例如:我如何做到让玩游戏的人在不搜索背包的情况下不能两次拿起帽子或拿起防水布。

4

2 回答 2

1

部分问题的解决方案是使用调度程序:

def pick_up_hat():
  return True # do stuff

def search_backpack():
  return False # do stuff

actions = {
  'PICK UP HAT': pick_up_hat,
  'SEARCH BACKPACK': search_backpack,
  # ...
}

go = True
while go:
  cmd = raw_input().strip()
  go = actions[cmd]()

请注意,您的设计还有一些其他问题需要修复,例如管理状态。

于 2012-07-02T15:16:55.210 回答
0

我建议使用 cmd 模块,它是标准库的一部分。它为实现基于终端的命令解析、菜单等提供了方便的基础设施。这是一个很好的基础教程:

http://www.doughellmann.com/PyMOTW/cmd/index.html

还有一个名为 cmd2 的替代第三方模块,它的工作方式相同,但具有更多功能:

http://pypi.python.org/pypi/cmd2

于 2012-07-02T16:10:54.627 回答