如何根据python中的输入循环基于文本的游戏

时间:2012-07-02 15:01:41

标签: python loops text

到目前为止,我有这个:

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语句。

例如:我如何制作游戏的人不能拿起帽子两次或拿起防水布而不搜索背包。

2 个答案:

答案 0 :(得分: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]()

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

答案 1 :(得分:0)

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

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

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

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