私はstatを増減するたびにmax hpを上げる関数を作成しようとしています。私はself.maxHpCalc()playerを変更しようとしました。**私は考えることができ、運がなかった理由はすべて、変数=(int)をorcクラスに移動しています。私はそれをどのように変更するかに応じて、私は自分自身を得る/プレーヤーは属性強度を持たない、maxHpまたはmaxHpCalcは定義されていない。Pythonでのテキストベースのゲームのクラスの操作
class player:
def __init__(self, hp = 1 , maxHp = 1, strength = 4, defense = 5):
self.hp = hp
self.maxHp = maxHpCalc()
self.strength = strength
self.defense = defense
def maxHpCalc():
player.maxHp = player.strength + player.defense
class orc(player):
def __init__(self, hp, maxHp, strength , defnese):
super().__init__(hp, maxHp, strength, defense)
print(player.maxHp)
すべてが、私はここにいくつかの固定のコードがクラスを行使するための小さなドライバプログラムで、の自己は、一瞬
私はこれを読んだが、私は質問を見るのに苦労している。あなたはそれを正しくやっているという安心感を探していますか? –
笑はい、上部のセクションです。多かれ少なかれ私はちょうど自分自身に話していた。それが正しいと思われる場合はそれを無視してください。主に私はすべてのdef関数の最後に問題があります。統計情報が何であるかに応じて常に変化する変数にして欲しいからです。だから私は "プレーヤーの属性upperStrengthを持っていない"またはmaxHPCalcが定義されていないなどのエラーが発生します。現在のところraiseStat()関数があり、maxHp =(formula)があり、それは動作しますが、私が見たところでは、関数をクラスに入れる方法が必要ですmaxHp = maxHpCalc()それを動作させる方法を見つけました。 – Reederboard
これらの関数をインデントしてみましたか?それで、それらはクラスのスコープの下にありますか?これらの種類の字下げエラーは、コードをテキストボックスに貼り付けた結果ではなく、元のポスターコードの本物のエラーであるとは決して確信できません。 –