我正在编写文本冒险,我创建了一个系统,用户可以在该系统中观察区域和区域中的对象。
例如,用户可以将区域视为:
“一个平淡,安静的沙漠。你可以看到猫,鼠标和扫帚。”
它使用for循环创建一个带有数字的项目列表。
等
我想知道如何为文本中显示的每个词条分配一个数字。
{"cat":1, "mouse":1, "broom":1}
每个键的值是对象的实例数。如何使我的代码允许每个键从其字典值中获得值ASIDE以便能够按顺序引用?
用户应该能够输入与编号列表对应的他/她的回复号码。如果他们选择“1”,他们会选择观察猫,并且可以根据该词典中“对象编号1”的内容进行更改,该字段会根据用户当前所在的区域而变化。
如果用户在一个黑暗的洞穴中,则该SAME字典中的“对象编号1”可能会更改为“dog”。用户应该能够选择“1”并观察DOG而不是CAT ...
那么如何检测哪个键位于字典的哪个位置?
答案 0 :(得分:1)
这里有两种不同的数据。一个是长期特征集(对象出现了多少个实例),另一个是用户仅用于菜单选择的非常瞬态索引。将第二个用例委托给执行提示的函数。它可以使用您传递给函数的简单列表,并找出索引本身。
item_database = {"cat":1, "mouse":1, "broom":1}
def multiprompt(base, *items):
"""Prompt for a list of items and return the item selected"""
while 1:
for index, item in enumerate(items, 1):
print("{}. {} {}".format(index, base, item))
try:
choice = int(input("Select number: "))
if choice < 1 or choice > len(items):
raise ValueError()
return items[choice-1]
except ValueError:
print("Error, try again")
choice = multiprompt("Take or observe", "cat", "mouse", "broom")
print("You chose {} which as count {}".format(choice,
item_database[choice]))