0

因此,我在为我在学习 Python 时编写的基本游戏编写的一些代码时遇到了一些麻烦(如果有帮助,请点击此处的原始问题)。

在玩了很多之后,我意识到了我的问题。当试图让一个对象(一个角色)“拥有”另一个类的对象(例如武器)时,我实际上不知道如何做一个“拥有”。

如果我愿意,可以说一个名为 dean 的 Char(角色)针对他所拥有的武器执行特定的操作。我将如何给那个对象(Char 院长)一个“武器”类的对象?

谢谢你。

编辑:

我发现我可以通过将有问题的“武器”作为参数传递来做到这一点。IE:

院长 = Char("院长", hanzo_blade)

然后让 Char init带有(自我,名字,武器)。

但是,我希望用户从选择中选择角色获得的武器。所以我不确定 Char(____) 的内容是否可以根据用户输入动态确定。如果可能,我该怎么做?如果没有,我该怎么办?

再次感谢。

编辑2:这是相关的代码:

class Char(object):


    def __init__(self, name):
        self.name = name
        self.hp = 300
        self.mp = 10
        self.strn = 1
        self.dex = 1
        self.armor = 0
        self.xp = 0
        self.items = []
        self.spells = []
        self.weapon = sword() # Assume sword is the default. Alternatively, how might I let this default to nothing?

class Weapon(Equip):
    impact = 1
    sharp = 1

    def __init__(self, name):
        self.name = name

hanzo_blade = Weapon("Hanzo Blade")
hanzo_blade.wgt = 3
hanzo_blade.impact = 1 
hanzo_blade.sharp = 9


dean = Char("Dean")
dean.strn = 3
dean.dex = 8

如果 hanzo_blade 是一种选择,例如,我怎么能让玩家为 Char 院长选择该武器?

4

1 回答 1

0

你知道raw_input内置吗?(input在 Python 3 中)

# We assume we already have sword, fists, and stern_glare objects
# representing weapons.
weapons = {'sword': sword, 'fists': fists, 'stern glare': stern_glare}

# Prompt for a choice, and keep prompting until you get a valid choice.
# You'll probably want a more user-friendly prompt.
valid_choice = False
while not valid_choice:
    weapon_choice = raw_input('Select your weapon')
    valid_choice = weapon_choice in weapons

# Create the character.
dean = Char('Dean', weapons[weapon_choice])
于 2013-10-23T02:50:37.280 回答