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