需要帮助用Python编写多个文件吗

2024-09-28 05:17:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个RPG,并试图将其拆分为多个文件以更好地组织。(我是说,单是人物塑造就有2000多行)但这是我从来没有做过的事情,我真的不知道该怎么做。所以,如果我能得到一些关于如何有效设置的一般性建议,我会非常感激的。除了python网站上关于模块的页面,我真的没有找到关于这个主题的很多信息,但是我还是有点不清楚。这绝对是迄今为止我在编程中遇到的最令人困惑、谈论最少的事情。。。我不喜欢问这样模糊的问题,但我自己肯定没有取得任何进展,所以我希望你们中的一个能让我走上正确的道路。在

我还将举一个具体的例子。在

我想把角色的所有属性和技能放在一到两个列表中,这样我就可以更容易地将它们用于函数,而且我不知道如何使用另一个文件中的列表作为函数的参数。这就是我尝试过的,似乎应该会奏效。我将此文件导入CharacterCreation,然后使用“StatCalculations.升级(PLAYERSTATLIST)”,但它显示“module”对象没有属性“LevelUp”。在

我做错什么了?在

from CharacterCreation import BaseHEALTH, BaseMANA, BaseSTAMINA, BaseCAPACITY, BaseDEFENSE, STRENGTH, ENDURANCE, AGILITY, INTELLIGENCE, PERSONALITY, BaseSTRENGTH, BaseENDURANCE, BaseAGILITY, BaseINTELLIGENCE, BasePERSONALITY, PLAYERLEVEL, PLAYERNAME

def LevelUp(*PLAYERSTATLIST):
    HEALTH = BaseHEALTH + ( ENDURANCE / 2 ) + ( STRENGTH / 5 )
    MANA = BaseMANA + INTELLIGENCE + ( ENDURANCE / 10 )
    STAMINA = BaseSTAMINA + ( STRENGTH / 5 ) + ( ENDURANCE / 5 )
    CAPACITY = BaseCAPACITY + ( STRENGTH / 5 ) + ( ENDURANCE / 10 )
    DEFENSE = BaseDEFENSE + ( ENDURANCE / 10 ) + ( AGILITY / 10 ) + ( STRENGTH / 10 )
    PLAYERSTATLIST = [HEALTH, MANA, STAMINA, CAPACITY, DEFENSE, BaseHEALTH, BaseMANA, BaseSTAMINA, BaseCAPACITY, BaseDEFENSE, STRENGTH, ENDURANCE, AGILITY, INTELLIGENCE, PERSONALITY, BaseSTRENGTH, BaseENDURANCE, BaseAGILITY, BaseINTELLIGENCE, BasePERSONALITY, PLAYERLEVEL, PLAYERNAME]
return PLAYERSTATLIST

Tags: 文件函数列表属性事情strengthintelligenceagility
2条回答

这里有一个小例子可以让你开始。。你可以用randrange之类的东西初始化基值。这些类中的每一个都可以放入一个文件并作为一个模块导入,无论什么都可以使您保持组织。祝你好运

import random

class PlayerAttributes(object):

    def __init__(self):
        self.health      = 0
        self.mana        = 0
        self.stamina     = 0
        self.capacity    = 0
        self.defense     = 0
        self.reset_attributes()

    def level_up(self):
        self.level_health()
        self.level_mana()
        #etc

    def reset_attributes(self):
        self.reset_health()
        self.reset_mana()
        self.reset_stamina()
        self.reset_capacity()
        self.reset_defense()

    def get_health(self):
        return self.health

    def reset_health(self):
        self.health = base_health

    def level_health(self):
        self.health += (self.endurance/2) + (self.strength/2)


class Equipment(object):

    def __init__(self):
        self.equipment_dict     = {}
        self.currently_equipped = None

    def set_equipped_weapon(self,weapon_name)
        self.currently_equipped = weapon_name

    def add_item(self,item):
        self.equipment_dict[item.name] = item

class Item(object):

    def __init__(self,name,hp,attack,defense,weight):
        pass #put stuff in here, etc


class Player(object):

    def __init__(self):
        self.attributes = PlayerAttributes()
        self.backpack   = Equipment()
        self.backpack.add_item(Item("dagger",5,10,0,2))

    def level_up(self):
        self.attributes.level_up()

So, if I could get some general advice on how to set things up efficiently, etc.

第1步。阅读Python库。一打或一打是相关的。如果你看一下因特网协议部分,你会发现许多东西被分解成许多库。在

第二步。想想你从图书馆里学到了什么。你读得越多,就会产生越多的原则。在

提示。“模块”是一个单一的、可重用的文件,主要由类和函数定义组成。在

相关问题 更多 >

    热门问题