0

そのため、Pythonの学習で書いている基本的なゲームで行っているコードで問題が発生していました(元の質問役立つ場合)。

いろいろいじってみたところ、自分の問題に気づきました。あるオブジェクト (キャラクター) に別のクラスのオブジェクト (武器など) を「持たせ」ようとするときに「has-a」を実行する方法が実際にはわかりません。

必要に応じて、ディーンと呼ばれるシャア (キャラクター) に、彼が持っている武器に固有のアクションを実行してもらいます。そのオブジェクト (Char dean) にクラス "Weapon" のオブジェクトを与えるにはどうすればよいでしょうか?

ありがとうございました。

編集:

問題の「武器」を引数として渡すことでこれを実行できることがわかりました。すなわち:

dean = Char("ディーン", hanzo_blade)

次に、(self、name、weapon) でChar を初期化します。

ただし、ユーザーが選択肢からキャラクターが取得する武器を選択できるようにしたいと考えています。したがって、 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 が 1 つのオプションである場合、たとえば、シャアディーンの武器をプレイヤーに選択させるにはどうすればよいでしょうか?

4

1 に答える 1