私はコンピューティングスキルをPythonで鍛えるために "ペットゲーム"を作成しています(これは単なる言い訳です。オブジェクトの属性を効果的に更新する方法
私は単純なRPGゲームをすることにしました。しかし、私はヒーローがレベルアップするたびに、私は別に、そのステータスのすべてを更新するために必要なことに気づいた
class hero:
#Common class for the main character
def __init__(self, name, lvl, str, agi, vit, int, luk, prof):
self.name = name
self.lvl = lvl
self.str = str
self.agi = agi
self.vit = vit
self.int = int
self.luk = luk
self.prof = prof
self.exp = 0
if prof==1:
self.dmg=3*(self.str)+1*(self.agi)
self.skillList=['heavySlash01']
self.strUp=3
self.agiUp=1
self.vitUp=2
self.intUp=1
self.lukUp=1
if prof==2:
self.dmg=1*(self.str)+3*(self.agi)
self.skillList=['doubleAttack02']
self.strUp=1
self.agiUp=3
self.vitUp=1
self.intUp=1
self.lukUp=2
if prof==3:
self.dmg=4*(self.int)
self.skillList=['fireBall03']
self.strUp=1
self.agiUp=1.5
self.vitUp=0.5
self.intUp=3.5
self.lukUp=1.5
self.hp=19*vit
:そのために、私はクラス英雄を定義しました。たとえば、hero.dmg
を手動で更新する必要がありました。 agi
、str
、int
を変更しても、私が期待していた通りに自動的にdmg
は変更されませんでした。
私の質問は次のとおりです。dmg
の式に基づいて自動的に更新する方法はありますか?
すべてのこれらのマジックナンバーは...これらは本当に、configファイルの私見に住みたいです。 – Kevin
私は同意しますが、質問に答えるだけでコードを完全に書き換えないようにして、書き換えられたコードがOPを混乱させないようにします。 – Karin