我正在尝试创建一个可以攻击或防御的简单游戏。我创建了两个攻击功能(玩家和敌人)和一个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时才稍微过去。
答案 0 :(得分:1)
您要
while playerHealth > 0 and enemyHealth > 0:
代替or
。
现在您有条件的方式,直到两个健康条都等于或小于0时,游戏才会停止。因此,如果您的敌人已经被击败,但是您的玩家的生命值超过0,则游戏将继续运行。