Python文本游戏开发:如何访问字典中Item属性并添加到背包
解决方案
你只需要在移动成功切换currentRoom后,读取当前房间对应字典的Item字段即可,额外可以补充判断逻辑适配你的游戏规则,修改后的循环代码参考如下:
while not gameOver: playerStats(currentRoom, inventory, rooms) playerMove = input('Enter your move:\n') try: # 先验证移动是否合法 target_room = rooms[currentRoom][playerMove] # 移动合法才更新当前房间 currentRoom = target_room except KeyError: print('Invalid move') continue # 移动完成后处理物品/反派逻辑 # 读取当前房间的物品,没有Item字段的房间会返回None room_item = rooms[currentRoom].get('Item') # 先判断是不是进入了反派房间 if room_item == 'Record Executive': print('你遇到了唱片公司高管,游戏结束!') gameOver = True continue # 有可收集物品且还没捡过的情况 if room_item is not None and room_item not in inventory: print(f'你发现了:{room_item}') # 自动收集写法,也可以加交互让玩家选择是否拾取 inventory.append(room_item) print(f'{room_item} 已加入你的背包') # 可选:判断所有物品收集完成触发胜利条件,总共有6件可收集物品 if len(inventory) == 6: print('你收集齐了所有物品,恭喜通关!') gameOver = True
核心逻辑说明
- 用字典的
get()方法读取Item字段,避免Lobby这类没有物品的房间触发KeyError - 优先判断当前房间物品是否为反派,符合你的游戏规则要求
- 新增重复收集校验,同一个房间的物品不会重复加入背包
内容的提问来源于stack exchange,提问作者aubrey digital
相关产品推荐
相关产品推荐

