Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于文本的Python RPG存储武器_Python_Coding Style_Python 2.7 - Fatal编程技术网

基于文本的Python RPG存储武器

基于文本的Python RPG存储武器,python,coding-style,python-2.7,Python,Coding Style,Python 2.7,我是编程新手,我正在自学Python,作为一种爱好,我正在制作一个基于文本的RPG 我的问题是,;我想储存一份武器、盔甲等的清单,可以很容易地编辑,而不会破坏我的整个程序。我的想法是为它们创建一个单独的模块equipment.py,并将它们存储在如下列表中: equipment = [ #Longsword w1 = 15 #Axe w2 = 17 ] 我只需要导入这个,并使用分配给它们的值,这些值将用于我决定创建的任何战斗引擎。这是正确的吗?糟糕的编码惯例?我有很多东西要学,非常感谢你分享

我是编程新手,我正在自学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.'}

}

有什么建议吗?我已经通读了一遍,但是我的知识还不够好,或者在这个特定的案例中没有什么具体的帮助

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

equipment = {
              'Longsword': 15,
              'Axe':       17
            }
这样,您就可以将longswords值引用为
设备['Longsword']
,而不是根据其在列表
设备[0]
中的位置

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

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

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

这允许以后添加其他功能(而不破坏以前的机制)。

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

equipment = {
              'Longsword': 15,
              'Axe':       17
            }
这样,您就可以将longswords值引用为
设备['Longsword']
,而不是根据其在列表
设备[0]
中的位置

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

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

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

这允许以后添加额外的功能(而不破坏以前的机制)。

在我看来,您最好将这些值存储在python之外的配置文件中

例如,它的语法即使对于不懂任何编程语言的用户也是可读的


这也使得在游戏中编辑武器成为可能,并进行永久性更改。实际上,通过使用字典方法,您需要更改程序正在运行的文件,这是我尽量避免的。

在我看来,您最好将这些值存储在python之外的配置文件中

例如,它的语法即使对于不懂任何编程语言的用户也是可读的


这也使得在游戏中编辑武器成为可能,并进行永久性更改。实际上,通过使用字典方法,您需要更改程序正在运行的文件,这是我尽量避免的。

这非常有用!我现在正在编写代码,这是迄今为止我最头疼的事情。所以我为字典里的一个项目编了一本字典?我不知道我能做到这一点。我是一个快乐的程序员!你帮了大忙!这非常有帮助!我现在正在编写代码,这是迄今为止我最头疼的事情。所以我为字典里的一个项目编了一本字典?我不知道我能做到这一点。我是一个快乐的程序员!你帮了大忙!RPG标签指的是最初由IBM开发的报表程序生成语言,当角色扮演游戏完全意味着其他东西的时候。RPG标签指的是最初由IBM开发的报表程序生成语言,当角色扮演游戏完全意味着其他东西的时候。我将其作为书签进行研究,这似乎有点超出了我目前的范围,但谢谢你的智慧!我把它记在书签里是为了学习,现在似乎有点超出了我的范围,但谢谢你的智慧!