#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.