抱歉,标题太长了,我不能用一个简短的短语来表达我的错误。不管怎样,代码没有抛出任何异常,只是我注意到了一个错误。我正在创建一个简单的基于文本的python游戏,以获得继承流和其他东西。在我的chara类(用于初始化字符变量的类)中,我有一个空数组集,一个名为equitedlist的类变量。我创建了一个函数,将一个项添加到该数组并返回它。我的错误是,如果我为chara bob装备了一把剑,那么我的程序中的所有其他chara变量也将装备一把剑。这是我的密码,提前谢谢!你知道吗
class Chara():
"""Class used to initialize new characters, including player, NPC's, enemies
and animals. inventory value should be a dictionary i.e. {Gold:50,
weapons:[sword, bow]} IMPORTANT, all chara object variables must have
backpack as
as their inventory array key"""
equiptedlist = []
def __init__(self, hp, speed, name, inventory, isenemy, isplayer):
self.hp = hp
self.speed = speed
self.name = name
self.inventory = inventory
self.isenemy = isenemy
self.isplayer = isplayer
def gethp(self):
return self.hp
def getspeed(self):
return self.speed
def getname(self):
return self.name
def getinv(self):
return self.inventory
#gets whether the char is an enemy or not
def enemy(self):
return self.isenemy
#gets whether the char is a player or not
def player(self):
return self.isplayer
def sethp(self, newhp):
self.hp = newhp
return self.hp
def setspeed(self, newspeed):
self.speed = newspeed
return self.speed
def setname(self, newname):
self.name = newname
return self.name
def setinv(self, newinv):
self.inventory = newinv
return self.inventory
#sets whether the char is an enemy or not
def setenemy(self, enemy):
self.isenemy = enemy
return self.isenemy
#sets whether the char is a player or not
def setplayer(self, player):
self.isplayer = player
return self.isplayer
#picks up an item
def pickup(self, item):
self.inventory.setdefault("backpack", []).append(item)
return self.inventory
#returns a boolean value to check if the item is in the charas inventory
def has(self, item):
for key in self.inventory.keys():
if item in self.inventory[key]:
return True
else:
return False
#returns new enemy hp after an attack
def attack(self, enemy, weapon):
enemy.sethp(enemy.gethp() - weapon.getdmg())
return enemy.gethp()
#equipts an item to the player
def equipt(self, item):
self.equiptedlist.append(item)
return self.equiptedlist
#checks if an item as equipted
def isequipted(self, item):
for i in self.equiptedlist:
if item == i:
return True
else:
return False
Here is the python doc that explains why every Chara equips sword.
相关问题 更多 >
编程相关推荐