我正在写一个基于文本的游戏作为练习。我有GenerateEnemies函数,它可以创建一些随机的地精并将它们放在当前的敌人列表中。你知道吗
使用攻击功能,我可以使英雄攻击当前敌人列表中的一个地精,降低它的生命值。你知道吗
我想要的是当敌人的生命值低于0时,它就会死亡。我加入了例外“如果自身.HP<;0:del(self)”但这不起作用。你知道吗
实现预期行为的正确语法是什么?另外,如果删除了对象,那么对象中的内容会发生什么变化?是所有的东西都在移动,还是对象所在的索引中什么都没有?你知道吗
import random
CurrentEnemy = []
class Monster(object):
def __init__(self, Name, HP, Damage):
self.Name = Name
self.HP = HP
self.Damage = Damage
**if self.HP < 0:
del(self)**
class Hero(object):
def __init__(self, Name, HP, Damage):
self.Name = Name
self.HP = HP
self.Damage = Damage
def GenerateEnemies():
NumberEnemies = random.randint(0,5)
del CurrentEnemy[:]
i=0
while i < (NumberEnemies+1):
TempMonster = Monster("Goblin", random.randint(15,20), random.randint(1,3))
CurrentEnemy.append(TempMonster)
i = i + 1
i=0
while i in range(0, len(CurrentEnemy)):
print("Goblin " + str(i) + " HP: " + str(CurrentEnemy[i].HP))
print("Goblin " + str(i) + " Damage: " + str(CurrentEnemy[i].Damage))
i = i + 1
def GenerateHero(HeroName, HeroHP, HeroDamage):
return Hero(HeroName, HeroHP, HeroDamage)
MyHero = GenerateHero("Bob", 100, 10)
def Attack(Attacker, Defender):
Defender.HP = Defender.HP - Attacker.Damage
从列表中删除要花费很大,请改用set()。它有各种实用函数来删除对象,如s.add()和s.discard()。你知道吗
关于你的问题:
del(self)只删除类中对局部变量self的引用,而不是整个对象。你知道吗
如果你想删除这个对象,你必须从你存储它的列表容器中删除它。你知道吗
相关问题 更多 >
编程相关推荐