Python:选项的一个分支
我正在用python创建一个游戏,我试图找到一种方法来编写一个故事,然后用户选择要继续的路径,现在这听起来很简单,但是一旦你在if中添加了太多if,事情就会变得一团糟。 我试图找到一种最清晰、高效、无限的方式(你可以不断地在故事情节中添加分支,而不是因为电脑崩溃或其他原因) 我正在使用repl.it和python 2.7.13Python:选项的一个分支,python,python-2.7,if-statement,branch,Python,Python 2.7,If Statement,Branch,我正在用python创建一个游戏,我试图找到一种方法来编写一个故事,然后用户选择要继续的路径,现在这听起来很简单,但是一旦你在if中添加了太多if,事情就会变得一团糟。 我试图找到一种最清晰、高效、无限的方式(你可以不断地在故事情节中添加分支,而不是因为电脑崩溃或其他原因) 我正在使用repl.it和python 2.7.13 说真的,你要读多少遍才能明白这是一个路径分支游戏,你选择一条分支到其他路径的路径,而不是一个room N E S W游戏!一个选项是对所有选项使用字典。-然后在第220行
说真的,你要读多少遍才能明白这是一个路径分支游戏,你选择一条分支到其他路径的路径,而不是一个room N E S W游戏!一个选项是对所有选项使用字典。-然后在第220行调用
self.orient_dict
。你的最佳方法可能取决于你r级Python知识。我认为David Whitlock关于使用字典的建议是一个良好的开端。如果您想要更高级的方法,您可以定义自己的Python对象(类),然后用它们构建您的“世界”(例如房间、对象、玩家、功能等)。这将是无限可扩展的
我四处查看了一下,发现这个现成的模块正好可以做到这一点:。看看它是如何工作的。你需要为你的冒险找到正确的数据结构。对于带有“房间”的文本冒险,图形将非常合适。基本上,您将创建一个
房间类,该类是图形中的节点。每个房间都有您可以从那里前往的房间的引用。一个非常简单的房间类将有北、南、东和西成员可以旅行在每个方向。一个更复杂的游戏可以有一个房间的目录,其中的键描述了前往下一个房间的方向。编辑:
我想出了如何回答我自己的问题,以下是我的代码:
区域1='SrtR'
def dict_area1():
global area1
if area1 == "SrtR":
print ("you wake up in a forest")
print ('''what do you do?
Choices:
1 = find shelter
2 = build shelter
3 = go back 2 sleep''')
while True:
AC1 = input('>')
if AC1 == '1':
area1 = "area_1_SmlShed"
elif AC1 == '2':
area1 = "area_2_PileLog"
elif AC1 == '3':
print ('you wake up an hour later, in the same place, it is now afternoon')
continue
else:
print ('that is not a choice')
continue
dict_area1()
if area1 == 'area_1_SmlShed':
print ('after searching for about an hour, you come across a small shed')
print ('the shed seems to be abandoned')
print ('''
Choices:
1 = go into shed
2 = scout shed
3 = keep looking''')
while True:
AC1 = input('>')
if AC1 == '1':
area1 = "area_1_InShed"
elif AC1 == '2':
area1 = "area_BackShed"
elif AC1 == '3':
print ('After looking for another hour, you can\'t seem to find anything else')
else:
print ('that is not a choice')
continue
dict_area1()
为了避免过度嵌套,你可以让每个if语句调用一个函数。你需要使用repl.it吗?你不能在你的计算机上安装Python吗?顺便说一句,你应该学习Python 3。不,我正在使用它,所以我不需要在家工作。不,我喜欢Python 2,而且py3完全不同,它甚至不是同一种语言。官方的Python 3 tutorial是一个很好的起点,在SO Python wiki页面中列出了一些很好的教程:。但我想最好有一个简洁的文档,面向那些想要在Python 3上获得最新速度的有能力的Python 2程序员。这里有一个更为最新的代码版本:我不知道这将如何工作,因为我正在制作一个故事情节基于游戏