私はかなり趣味のようにPython(3)でコーディングするのはかなり新しいですが、GUIについて心配することなくいくつかのゲームの仕組みで遊んで楽しいです。私は現在、文学タイプのテキストベースのゲームに取り組んでいます。このゲームの基礎は、古いExcel文書にあります。数学と論理を中心にしていますが、これは非常に簡単ではあるが深い一連の仕組みのために作られたものです。Pythonのテキストベースの力学:クラス、辞書、またはリスト?
とにかく、ゲームは技術の研究、建物の生産、市民の成長、文化の収集などを可能にします。私が苦労しているのは軍事システムです。
私は、プレイヤーが生産するためのさまざまなユニットがあります。各ユニットに名前、強さ、弾力性があるとしましょう(例えば、「Archer」、「10」、「80」)。戦争は全プレイヤーの強さに基づいています(私はこれを計算できます)。戦闘が終わるたびに、ユニットの弾力は回復力によって減少します。このアーチャーは、戦後の元の強さの80%にまで低下します。
しかし、私はこのメカニックを可能にする方法でユニットを作成する方法を試していません。私はもともとユニットの量の名前/強度/弾力性と並んで 'quantity'引数を持つUnit()クラス(例えばアーチャー、スピアマンなどの異なるユニットを持つ)を使用しましたが、回復力私は、現在生産されているユニットだけでなく、今後のすべてのバージョンにも影響を与えていることに気付きました。
がclass Unit():
def __init__(self, name, quantity, strength, resilience)
self.name = name
self.quantity = quantity
self.strength = strength
self.resilience = resilience
archer = Unit('archer', 0, 10, 80)
等...
ユーザーはユニット、「数量」を建てたびに増加するであろう:私は次のようなものを実行していました。しかし、おそらく私はそれがおそらく私を制限しているコーディングのこの方法だと理解するようになった。他のスレッドを読むと、オブジェクトデータをこのような方法で保存しないようにする必要があることがわかりました。
私は遊んでいて研究していて、私は解決策の周りに頭を浮かべているようには見えません(確かにそこにあります)。私は各ユニットの基本データ(名前、強度、弾力性)を格納する正しい方法を見つけるのが難しく、ユーザーは各ユニットの複数の固有のコピーを作成することができます。各ユニットはクラスでなければなりませんか?サブクラス?それは辞書に保存する必要がありますか?リスト?
この記事ではコードがないことをお詫びしますが、間違ったコードはありません。ロジックとPythonの知識が不足しているため、正しく動作するシステムを見つけることができません。辞書、リスト、ループ、継承されたクラスで遊んでいますが、私はそれを正しく理解できません。
将来の射手に影響を与えずに、それぞれがダメージを受ける複数の射手をどのように作成するのですか?
誰かが何か提案できる場合はありがとうございます。これ以外にも、私はPythonでたくさんの楽しいコーディングをしています!
もっとコードを表示する必要があります。あなたがそこで行ったように強さを定義することは、それらがその特定のユニットにのみ適用されることを意味し、そのタイプのすべてのユニットには適用されません。人々が作る通常の間違いはクラスレベルでこれらの値を定義することですが、あなたはそれをしていません。 –
フィードバックいただきありがとうございます。私は間違ったコードを持っているわけではないので、どのコードが本当に関係するかはわかりませんでした。ちょうど私がPythonのロジックを使い遊んでいて、正しい構造を理解できません。下のRawingの答えは近いですが、ユーザーがオブジェクトを作成する際にオブジェクトのIDを作成するだけの問題があります。 – Jammydude44