我希望有人能回答我的问题。对于我正在制作的一个基于文本的视频游戏,我试图在英雄击中我地图上的某个位置时,得到一个与英雄战斗的敌人列表。我创建了一个父类角色,然后创建了两个子类英雄和敌人。我有一个敌人的名单和另一个对应的curHp名单。我是python的新手,很难知道把敌人的名字列表和他们的curHp列表放在哪里。任何帮助都将不胜感激。你知道吗
class Character (object):
def __init__(self, name, curHp):
self.__name = name
self.__curHp = curHp
def getName(self):
return self.__name
def getCurHp(self):
return self.__curHp
def setName(self, newName):
newName= self.__newName
def setCurHp(self, newCurHp):
H = ""
self.__newCurHp=self.__curHp + 20
class Hero (Character):
def __init__(self, name, curHp, stun, laser, vsurge):
super().__init__(name, curHp, stun, laser, vsurge)
self.__stun=stun
self.__laser= laser
self.__vsurge= vsurge
def getStun(self):
return self.__stun
def getLaser(self):
return self.__laser
def getVsurge(self):
return self.__vsurge
def setStun(self,newStun):
self.__newStun=self.__newStun
def setLaser (self,newLaser):
self.__newLaser= self.__newLaser
def setVsurge(self, newVsurge):
self.__newVsurge = self.__vsurge + 25
class Enemy(Character):
def __init__(self, name, curHp, attack):
super().__init__(name, curHp, attack)
self.__attack=attack
def getAttack(self):
return self.__attack
def setAttack (self, newAttack):
newAttack= self.__newAttack
我尝试将列表放入def main():但不断出现错误
player=Hero ("Agent Five", 120, 20 ,10 ,25 )
enemy=Enemy (name=["Raptor", "T-Rex", "Enemy Solider", "General", "Dual Sentience", "Empty Robot", "The Sentience", "GOD"],curHp=[40, 100, 25, 60, 75, 45, 130, 200], [] )
At line:1 char:2
+ [40, 100, 25, 60, 75, 45, 130, 200]cd 'd:\Time Breakers Game\TimeBrea ...
+ ~
Missing type name after '['.
At line:1 char:4
+ [40, 100, 25, 60, 75, 45, 130, 200]cd 'd:\Time Breakers Game\TimeBrea ...
+ ~
Missing argument in parameter list.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingTypename
任何提示都将不胜感激。谢谢
更新:敌人名单中的最后一个空名单将最终成为每个敌人的攻击点。你知道吗
我将创建一个函数,返回一个包含字符的字典。你知道吗
您不需要在init中声明攻击
让敌人一次攻击一个玩家。调用字典上的for循环,在本例中,我使用
random.choice
随机选取一个数量,然后将其作为对播放器的伤害您还需要在类模块中以相反的方式更改setter。你知道吗
应该是
要创建敌人列表,不能使用值列表调用
Enemy
构造函数;相反,必须为敌人调用一次Enemy
构造函数。您可以使用zip
来简化这个过程。你知道吗此外,不能将位置参数放在关键字参数之后,要么使用
name=…, curHp=…, attack=…
,要么只使用…, …, …
,而不是name=…, curHp=…, …
。你知道吗最后,我不知道你想让
[]
对攻击做什么。也许每个人都是0?不管你想要什么,你都必须明确地说出来。你知道吗所以:
如果您知道什么是列表理解,您可能会看到最后三行可以重写:
或者,如果您有一个攻击列表,如名称和hp列表:
相关问题 更多 >
编程相关推荐