为什么即使满足条件后我的while循环仍在继续

时间:2019-08-08 19:40:38

标签: python loops while-loop

我正在尝试创建一个可以攻击或防御的简单游戏。我创建了两个攻击功能(玩家和敌人)和一个while循环,条件是当任一生命值都为0时结束,但是当我运行该程序时,即使其中一个生命值小于0也会重复while循环。 / p>

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时才稍微过去。

1 个答案:

答案 0 :(得分:1)

您要

while playerHealth > 0 and enemyHealth > 0:

代替or

现在您有条件的方式,直到两个健康条都等于或小于0时​​,游戏才会停止。因此,如果您的敌人已经被击败,但是您的玩家的生命值超过0,则游戏将继续运行。