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

地牢爬行者游戏中如何打印类实例时显示sell_price属性

地牢爬行者游戏:显示物品售价的代码修改

问题背景

开发地牢爬行者游戏时,需要从索引字典blacksmith_dict中打印物品类实例名称的同时,展示其sell_price属性。字典中所有物品实例均包含该属性,现有代码已实现物品类型与具体物品的选择功能,但输出仅显示编号和名称,需补充售价信息。

字典结构示例:

blacksmith_dict = {
    'Weapons': [short_sword, short_axe, quantum_sword, broad_sword...],
    'Armor': [leather_armor, studded_leather_armor....]
}

修改方案

1. 核心修改:物品列表打印逻辑

原代码中构建item_dict的步骤可直接用enumerate替代,同时在打印时加入sell_price属性,既简化代码又避免索引错误:

print(f"{item_type_to_buy} for sale:")
# 按售价排序物品,生成新列表避免修改原字典顺序
sorted_items = sorted(blacksmith_dict[item_type_to_buy], key=lambda x: x.sell_price)
# 从1开始编号,直接遍历打印名称+售价
for idx, item in enumerate(sorted_items, start=1):
    print(f"{idx} : {item} - {item.sell_price} GP")
print(f"Your gold: {self.gold} GP")

2. (可选)简化物品类型选择逻辑

原代码构建item_type_dict的冗余步骤可直接用enumerate简化:

# 创建物品类型列表并直接打印编号与类型
item_type_lst = list(blacksmith_dict.keys())
for idx, item_type in enumerate(item_type_lst, start=1):
    print(f"{idx} : {item_type}")

修改后输出示例

Weapons for sale:
1 : Short Sword - 15 GP
2 : Broad Sword - 50 GP
...
Your gold: 500000 GP
(P)ick item by number, or go (B)ack:

内容的提问来源于stack exchange,提问作者misfit138

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:45:59