【发布时间】:2018-05-13 19:29:23
【问题描述】:
我希望有人能够回答我的问题。对于我正在制作的基于文本的视频游戏,我试图在英雄击中我地图上的某个位置时获取与英雄战斗的敌人列表。我创建了一个父类 Character,然后创建了两个子类 Hero 和 Enemy。我有一个敌人名称列表和另一个对应的 curHp 列表。我是 python 新手,正在努力知道将敌人名称 List 和他们的 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
任何提示将不胜感激。谢谢
更新:敌人列表中最后一个空列表最终将是每个敌人的攻击点。
【问题讨论】:
-
附带说明:您几乎肯定不想要像
__hp这样的双下划线名称。或者像getHp这样的吸气剂。而你使用它们的事实几乎总是表明教你的人并不真正了解 Python,而是试图教你 Java,所以你应该找到一个更好的资源来学习。 (如果是学校里的老师,你可以做的不多,但如果是书籍或在线教程或视频系列,就另找一个。) -
与@abarnert 的回答相同。并且不要向
super发送攻击、眩晕、激光等。 -
另外,你用什么解释器运行这个?这些看起来不像来自 CPython、PyPy、Jython 或 IronPython 的错误。
-
@abarnert 我正在向一位老师学习,他提到我们应该为我们编写的所有内容执行 __hp,但我一定会牢记,有更好的方法可以做到这一点。我正在使用带有 Python 添加的 Visual Studio Code
-
@K.Camp 然后把它当作一个警告,你的老师不知道他在用 Python 做什么,你可能想找到更好的(课外)资源来学习。不幸的是,您也必须学习他的方法才能在课堂上取得好成绩,并且将差异保持在头脑中,这会让您的生活更加艰难。在 Python 中,有一个糟糕的老师实际上并不像在集合论或小说写作中那样糟糕,因为至少自学更容易,但仍然很痛苦。
标签: python python-3.x list