基于Python的RPG文本目录系统

2024-06-16 11:12:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为我的游戏建立一个库存系统。我可以更新角色的库存,但我希望能够添加项目,而不是更新它们。例如(下面)我想把地精的库存添加到角色的库存中,这样角色将有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-----")

输出为:

^{pr2}$

整个程序在这里:http://pastebin.com/4U9hpbWW


Tags: namein角色forvalue库存itemsclass
1条回答
网友
1楼 · 发布于 2024-06-16 11:12:19
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'])

试试这个。在

相关问题 更多 >