我正在开发一款角色扮演游戏,我想找到捕获用户输入并根据他们的选择创建类实例的最佳方法。我首先列出了武器及其属性的列表。我已经用字典做到了这一点。
melee_weapons = {'Broad Sword': {'damage':30, 'cost':25},
'Great Sword': {'damage':40, 'cost':45}, 'Spear': {'damage':20, 'cost':15}}
然后我就有了这个简单的武器类别。
class Weapon:
def __init__(self, name, damage, cost):
self.name = name
self.damage = damage
self.cost = cost
接下来,我有所有武器类别的实例:
broad_sword = Weapon('Board Sword', 30, 25)
great_sword = Weapon('Great Sword', 40, 45)
最后,我有要求输入的功能:
def weapon_selection():
print(weapons + ranged_weapons)
wp = int(input('What weapon would you like to pick? Enter the corresponding number'))
if wp == 1:
Character.weapon = broad_sword
elif wp == 2:
Character.weapon = great_sword
这种方法没有任何固有的问题,但是,如果有更快或更直观的方法,我将非常感激。
不需要你的字典
melee_weapons = {'Broad Sword': {'damage':30, 'cost':25},
'大剑': {'damage':40, 'cost':45}, '矛': {'damage':20, 'cost':15}}
当您在行中手动提供此信息时
broad_sword = Weapon('Board Sword', 30, 25)
great_sword = Weapon('Great Sword', 40, 45)
如果您想实现字典,那么为什么不创建类实例,例如:
user_input = 'Great Sword' # or something similar
user_weapon = Weapon(weapon_list[user_input], weapon_list[user_input]['damage'], weapon_list[user_input]['cost'])
这样,用户提供 key ,您就可以自动生成武器,而不必为字典中的每个输入手动创建武器实例
我是一名优秀的程序员,十分优秀!