gpt4 book ai didi

python - 获取敌人列表,一次与一个人战斗

转载 作者:行者123 更新时间:2023-11-30 22:15:23 29 4
gpt4 key购买 nike

我希望有人能够回答我的问题。对于我正在制作的基于文本的视频游戏,我试图在英雄击中 map 上的某个位置时获取与英雄战斗的敌人列表。我创建了一个父类角色,然后创建了两个子类英雄和敌人。我有一个敌人名称列表和另一个相应的 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

任何提示将不胜感激。谢谢

更新:敌人列表中的最后一个空列表最终将成为每个敌人的攻击点。

最佳答案

要创建敌人列表,您不能使用值列表调用 Enemy 构造函数;相反,您必须为敌人调用一次 Enemy 构造函数。您可以使用 zip 来简化此操作。

此外,您不能将位置参数放在关键字参数之后 - 使用 name=..., curHp=...,attack=... 或仅使用 ..., ..., ... ,而不是 name=..., curHp=..., ...

最后,我不确定您希望 [] 做什么来进行攻击。也许每个人都是0?无论你想要什么,你都必须明确地说出来。

所以:

enemy_names = ["Raptor", "T-Rex", "Enemy Solider", "General", "Dual Sentience", "Empty Robot", "The Sentience", "GOD"]
enemy_hps = [40, 100, 25, 60, 75, 45, 130, 200]

enemies = []
for name, hp in zip(enemy_names, enemy_hps):
enemies.append(Enemy(name, hp, 0))

如果您知道什么是列表推导式,您可能会发现最后三行可以重写:

enemies = [Enemy(name, hp, 0) for name, hp in zip(enemy_names, enemy_hps]

或者,如果您有攻击列表,例如名称和生命值列表:

enemies = [Enemy(*props) for props in zip(enemy_names, enemy_hps, enemy_attacks)]

关于python - 获取敌人列表,一次与一个人战斗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319877/

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