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.'}

}

有小费吗?我已通读PEP 8,但我的知识不够好,或者在这种特殊情况下没有足够具体的帮助

4

2 回答 2

4

我建议使用 python 字典(而不是列表)会更好。

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

这样您就可以引用 longswords 的值,equipment['Longsword']而不是通过它在列表中的位置equipment[0]

将它放在一个单独的模块中可能是一个好主意,也许在一个包含攻击/防御功能和其他项目效果的模块中。

.

您可能感兴趣的另一个建议(取决于 RPG 的功能)是为该属性和其他属性创建另一个字典,以便您将来可以添加其他属性。那是,

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 回答