я пытаюсь создать цикл while для панели работоспособности, но получаю ошибку разделения

#python #loops #while-loop #pygame

#python #циклы #цикл while #pygame

Вопрос:

Здравствуйте, итак, у меня есть небольшой фрагмент кода из моего большего кода, который предназначен для отображения панели работоспособности врага в игре, но по какой-то причине цикл продолжается даже после того, как я думаю, что он должен остановиться, я что-то упускаю или делаю неправильно?

 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")

  

Комментарии:

1. «pass» ничего не делает. Может быть, вы имели в виду «перерыв»?

2. Вы получаете ошибку? Что именно делает код, чего он не должен делать?

Ответ №1:

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

Эта часть неверна. Вы сравниваете alive с False

Это должно быть

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

Примечание: вам не нужно использовать pass в каждом отдельном операторе if.