gpt4 book ai didi

python - 需要帮助在 Python 中使用多个文件进行编程

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:26 25 4
gpt4 key购买 nike

我正在制作一个角色扮演游戏,并试图将内容拆分成多个文件以更好地组织内容。 (我的意思是,仅角色创建就超过 2000 行。)但这是我从未做过的事情,我真的不知道该怎么做。所以,如果我能得到一些关于如何有效地进行设置等的一般性建议,我将非常感激。除了 python 网站上关于模块的页面,我真的没能找到太多关于这个主题的东西,我确实读过,但我还是有点不清楚。这绝对是迄今为止我在编程中遇到的最令人困惑、最少谈论的事情……我确实讨厌问这样模糊的问题,但我自己绝对不会取得任何进展,所以我我希望你们中的任何一个能使我走上正确的道路。

我还会举一个具体的例子。

我想将角色的所有统计数据和技能放入一个或两个列表中,这样我可以更轻松地将它们与函数一起使用,但我不知道如何使用另一个文件中的列表作为参数功能。这是我尝试过的方法,看起来应该可行。我正在将此文件导入 CharacterCreation,然后仅使用“StatCalculations.LevelUp(PLAYERSTATLIST)”,但它显示“‘模块’对象没有属性‘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

最佳答案

这里有一个小例子来帮助你。你可以用诸如 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()

关于python - 需要帮助在 Python 中使用多个文件进行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com