そのため、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 つのオプションである場合、たとえば、シャアディーンの武器をプレイヤーに選択させるにはどうすればよいでしょうか?