文字冒险库存功能与字典



我正在尝试为我的文本冒险游戏编写库存。我想用字典来存储我的库存,但是我找不到一个好的方法。

inventory = {
'Holzbretter:', 'count': 0,
'Goldmünzen:', 'count': 5,
'Karte von Shipwreck-Beach:', 'count': 0
}

这是我的字典,里面有商品本身和每件商品的数量。我试过用for循环和if语句这样做,但它只是不起作用。我希望它打印'空库存'时,每'计数' == 0,但它总是打印'空库存'连续3次,而不是仅仅一次。我还想打印每个项目在另一个下,索引在括号中(我已经得到这个工作与enumerate,但计数将停止工作),它应该只打印项目与'count'>0. 像这样:

库存:

[1] goldmnze: 5

如果每个条目的计数都是0,那么它应该看起来像这样:

库存:

你的库存是空的!

首先,一个字典应该看起来像这样(不要在键本身中使用':',而是在需要时将其添加到打印中):

inventory = {'Holzbretter': 0,
'Goldmünzen': 5,
'Karte von Shipwreck-Beach': 0}

第二:也许你应该把你的问题分成更小的部分,然后开始搜索是否有类似的问题得到了回答:

  • 如何检查字典的所有值是否为0

使用所有()

  • Python字典()与Id号

字典顺序取决于插入和删除的历史记录。不能指望d.items()按特定顺序返回键值对。


为了保证显示顺序,你可以设置一个外观的优先级列表:

prio_list = ['Holzbretter', 'Goldmünzen', 'etc..' ]

假设你正在使用python3,库存检查器可能看起来像这样:

def check_inventory(inv: dict):
for item in prio_list:
if inv[item] != 0:
print(f"[{prio_list.index(item)}] {item}: {inv[item]}")
if all(value == 0 for value in inv.values()):
print("Your inventory is empty!")

最新更新