while jogador1_hp > 30:
enemy1_atk = random.randrange(1, 250)
enemy1 = Enemy1(enemy1_atk)
enemy1_atkk = enemy1.getAttk()
jogador1_hp = jogador1_hp - enemy1_atkk
if jogador1_hp <= 30:
jogador1_hp = 30
print("You got hit and you lost ", enemy1_atkk, " hp. Your HP its now", jogador1_hp)
if jogador1_hp > 30:
continue
print("Gods protected you by teleporting you to the nearest INN")
break
在本练习中,我想创建一个“敌人”,并且我希望他的攻击在每次攻击时都是随机的。如果我在while循环中创建敌方对象,每次循环它都会创建一个新对象,或者它会再次创建同一个对象?如何更改对象的参数而无需创建新对象?
有没有办法在循环之外创建对象,并且每次循环时仍然能够改变他的“攻击”?
编辑:这是我的敌人类
class Enemy1:
def __init__(self, atkp):
self.atkp = atkp
def getAttk(self):
return self.atkp
EDIT2:谢谢您的答复,我设法解决它。现在是这样的:
class Enemy1:
def __init__(self, atkp):
self.atkp = atkp
jogador1 = Player1(300)
jogador1_hp = jogador1.getBHP()
enemy1_atk = random.randrange(1, 250)
nemy1 = Enemy1(enemy1_atk)
while jogador1_hp > 30:
enemy1_atk = random.randrange(1, 250)
jogador1_hp = jogador1_hp - enemy1_atk
我已经在您的原始代码中为您的打印语句提供了一个建议。您可以使用字符串格式来真正轻松地组装字符串:'print(“你被击中并且你失去了{} hp。你的HP它的现在格式(enemy1_atkk,jogador1_hp))' – RagingRoosevelt