You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:06:11