我正在尝试为我的游戏制作库存系统。我可以更新角色的库存,但我希望能够添加项目,而不是更新它们。例如(下面)我想将妖精的库存添加到角色中,这样角色就会拥有3个生命药水,15个硬币和1把剑。
char = {'name' : "Hero",
'class' : "Default",
'lvl': 1,
'xp': 0,
'lvlNext' : 25,
'stats' : {'str': 1,
'dex' : 1,
'int' : 1,
'atk' : [5, 12],
'hp' : 20,
'maxHp' : 20},
'inv' : {'Coins': 10,
'Health potion' : 1 }
}
goblin = {'name' : "Goblin",
'class' : "Monster",
'lvl': 2,
'xp': 80,
'stats' : {'atk' : [3, 7],
'hp' : 15,
'maxHp': 15},
'inv': {'Coins': 5,
'Health potion': 2,
'Sword': 1}
}
for k, v in char['inv'].items():
print("\n------Char-----")
print("Name:", k )
print("Value:", v)
print("-----Char-----")
for k,v in goblin['inv'].items():
print("\n-----goblin-----")
print("Name:", k )
print("Value:", v)
print("-----goblin-----")
char['inv'].update(goblin['inv'])
for k, v in char['inv'].items():
print("\n------Char-----")
print("Name:", k )
print("Value:", v)
print("-----Char-----")
输出是:
>>>
------Char-----
Name: Coins
Value: 10
-----Char-----
------Char-----
Name: Health potion
Value: 1
-----Char-----
-----goblin-----
Name: Coins
Value: 5
-----goblin-----
-----goblin-----
Name: Sword
Value: 1
-----goblin-----
-----goblin-----
Name: Health potion
Value: 2
-----goblin-----
------Char-----
Name: Coins
Value: 5
-----Char-----
------Char-----
Name: Sword
Value: 1
-----Char-----
------Char-----
Name: Health potion
Value: 2
-----Char-----
>>>
整个计划在这里:http://pastebin.com/4U9hpbWW
答案 0 :(得分:1)
def update_inv(inv1, inv2):
"""
update inv1 dict with inv2 dict
"""
for k,v in inv2.items():
if k in inv1:
inv1[k] += inv2[k]
else:
inv1[k] = inv2[k]
update_inv(char['inv'], goblin['inv'])
试试这个。