【发布时间】:2023-03-31 22:08:01
【问题描述】:
我正在尝试创建一个简单的游戏,您可以在其中进行攻击或防御。我创建了两个攻击函数(玩家和敌人)和一个 while 循环,条件是当任一生命值最终为 0 时结束,但是当我运行程序时,即使其中一个生命值小于 0,while 循环也会重复。
while playerHealth > 0 or enemyHealth > 0:
choice = input("Attack(a) or defend(d)?")
if choice == "a":
playerAttack()
elif choice == "d":
print("Defend")
else:
print("ERROR")
time.sleep(3)
enemyAttack()
if playerHealth <= 0:
print("Game over")
if enemyHealth <= 0:
print("You win!")
我希望 while 循环会重复,直到敌人或玩家的生命值达到 0,然后根据谁的生命值首先耗尽显示游戏结束或你获胜。 实际结果是游戏稍微过了应该结束的时间,并且生命值远低于 0。
【问题讨论】:
-
代码中没有while循环
-
循环在哪里?
-
请添加您的问题的最小工作示例和预期输出。
-
您的
playerHealth和enemyHealth都不会在循环内更改。因此,如果您进入while循环,它将永远不会停止。 (我假设您没有在任何函数中声明这些变量global。)
标签: python loops while-loop