即时消息试图使一个健康栏的while循环,但得到除法错误

问题描述

您好,因此我的较大代码中有一小段代码,旨在显示游戏中敌人的健康状况,但由于某些原因,即使我认为应该停止,循环仍在继续,是否存在某些问题我想念还是做错了?

import pygame,sys
import time
import random
import os
import sqlite3
import os.path

damage_done = 1
random_monster_health = random.randint(7,10)
alive = True
print (random_monster_health)

while alive == True:
    mob_health = random_monster_health - damage_done
    print ("mob health is {}" .format(mob_health))
    if mob_health != 0:
        percent_damage_done = mob_health / int(random_monster_health)
        how_much_health_bar = 1180 * (percent_damage_done)
    else:
        pass
    random_monster_health = mob_health
    print(random_monster_health)
    if mob_health != 0:
        print("the monster is still alive")
        pass
    else:
        alive == False
        print ("the monster is dead")
        pass

print("the loop has ended")

解决方法

else:
    alive == False
    print ("the monster is dead")
    pass

这部分是错误的。您正在将aliveFalse

应该是

else:
    alive = False
    print ("the monster is dead")

旁注:您不需要在每个if语句中使用pass。