0

私はプログラミングに不慣れで、Pythonを自分で教えています。趣味として、テキストベースのRPGを作成しています。

私の質問はこれです。プログラム全体を台無しにすることなく簡単に編集できる武器、鎧などのリストを保存したいと思います。私の考えでは、それらのために別のモジュールを作成し、次equipment.pyのようなリストに保存します。

equipment = [ 
#Longsword
w1 = 15
#Axe
w2 = 17
]

これをインポートして、割り当てられた値を使用して、作成する戦闘エンジンで使用します。これも正しいですか?ひどいコーディング規約?私は学ぶことがたくさんあり、あなたが共有しなければならないどんな知恵も大いに感謝されます。

編集:以下の優れた答えから、私はそれをコーディングし始めました、私のコードはどのように見えますか?

equipment = {

'Longsword':     {  'cost': 50,
                    'damage': 19,
                    'element': 'physical',
                    'description': 'Long steel blade used by the knights of Coamrin. The weight allows it to cleave foes with relative ease.'}

'Estoc':        {   'cost': 45,
                    'damage': 17,
                    'element': 'physical',
                    'description': 'Expertly crafted thin, steel blade designed for thrust and swiping motions.'}

}

任意のヒント?私はPEP8を読みましたが、私の知識が十分ではないか、この特定のケースで役立つ具体的なものが何もありません。

4

2 に答える 2

4

(リストではなく)Python辞書を使用することをお勧めします。

equipment = {
              'Longsword': 15,
              'Axe':       17
            }

equipment['Longsword']そうすれば、リスト内の位置ではなく、ロングソードの値を参照できますequipment[0]

別のモジュールに配置することをお勧めします。おそらく、攻撃/防御機能やその他のアイテムの効果を含むモジュール内に配置することをお勧めします。

(RPGの機能に応じて)興味があるかもしれないもう1つの提案は、この属性と他の属性の別の辞書を用意して、将来他の属性を追加できるようにすることです。あれは、

equipment = {
             'Longsword': {'attack_str': 15, 'defence_str': 15, 'color': 'grey',... etc.}
             }

これにより、(以前のメカニズムを壊すことなく)後で追加機能を追加できます。

于 2012-09-03T23:11:43.660 に答える
1

私の意見では、これらの値をPythonの外部の構成ファイルに保存する方がよいと思います。

たとえば、ConfigParserには、プログラミング言語を知らないユーザーでも読める構文があります。

これにより、恒久的な変更を加えて、ゲーム内の武器の編集者を作成することもできます。実際、辞書アプローチを使用することにより、プログラムが実行しているファイルを変更する必要があります。これは私が避けようとしていることです。

于 2012-09-04T00:39:08.273 に答える