我想制作一个程序来执行某种战斗日志。你有 50% 的几率击中敌人并造成 10 到 25 的伤害。
from random import randint
hitChance = randint(0,1)
damage = 10 + randint(0, 15)
HP = 100
def atack():
global HP
if hitChance is 0:
print("Missed")
elif hitChance is 1:
HP -= damage
print(damage, " delt")
print(HP, " left")
while HP > 0:
atack()
print("You defeated the enemy!")
然而,当我运行这段代码时,它要么陷入“未命中”的无限循环,要么造成相同的伤害值。
请您参考如下方法:
从全局空间中取出变量并将它们放入函数中。
HP = 100
def atack():
global HP
hitChance = randint(0,1)
damage = 10 + randint(0, 15)
if hitChance == 0:
print("Missed")
elif hitChance == 1:
HP -= damage
print("{} delt".format(damage))
print("{} HP left".format(HP))
然后,在 while 循环之外进行最后的打印调用。
while HP > 0:
atack()
print("You defeated the enemy!")
示例输出:
14 delt 86 HP left 14 delt 72 HP left 15 delt 57 HP left Missed Missed Missed Missed Missed 23 delt 34 HP left 10 delt 24 HP left 10 delt 14 HP left Missed Missed Missed Missed 15 delt -1 HP left You defeated the enemy!
