我正在开发一个RPG,我想找到捕获用户输入并根据用户选择创建类实例的最佳方法。我首先介绍武器及其属性的列表。我已经用字典做了。

 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},


'大剑':{'伤害':40,'成本':45},'矛':{'伤害':20,'成本':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'])


这样,用户提供了密钥,您便可以自动生成武器,而无需手动为字典中的每个输入创建武器实例。

关于python - 基于Python文本的RPG-武器选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55172230/

10-12 18:23