#python #if-statement
Вопрос:
Я пытаюсь создать приключенческую игру с некоторыми боевыми действиями.
Однако, в
else: print("The werewolf took " str(damage) " damage. " str(werewolf_health) " health remains.")
триггер (и код под ним) срабатывает только иногда. Не могли бы вы помочь мне понять, почему?
Это и есть код:
def attack(): werewolf_health = 100 user_health = 100 while werewolf_health gt; 0: attack = input("gt;").upper() if "ATTACK" in attack: damage = rand_int() damage2 = rand_int_werewolf() if damage == 20: print(random.choice(sword_crit)) damage = damage * 1.5 werewolf_health = werewolf_health - damage print("The werewolf took " str(damage) " damage. " str(werewolf_health) " health remains.") if werewolf_health lt;= 0: print(random.choice(werewolf_death)) resolution() elif 17 lt;= damage lt;= 19: print(random.choice(sword_above_avg)) werewolf_health = werewolf_health - damage print("The werewolf took " str(damage) " damage. " str(werewolf_health) " health remains.") if werewolf_health lt;= 0: print(random.choice(werewolf_death)) resolution() elif 6 lt;= damage lt;= 16: print(random.choice(sword_avg)) werewolf_health = werewolf_health - damage if werewolf_health lt;= 0: print(random.choice(werewolf_death)) resolution() else: print("The werewolf took " str(damage) " damage. " str(werewolf_health) " health remains.") damage2 = rand_int_werewolf() if damage2 == 20: print(random.choice(werewolf_crit)) damage2 = damage2 * 1.5 user_health = user_health - damage2 print("You take " str(damage2) " damage. " "Your health drops to " str( user_health) ".")
Комментарии:
1. может быть, это вмятина вашего другого? Потому что, как бы то ни было, ваш else срабатывает только в том случае, ЕСЛИ elif 6 lt;= урон Потому что у вас есть основное утверждение IF, а затем утверждения Elif, но если вы хотите, чтобы остальное было тем, чем не являются ELIF, вам нужно, чтобы оно соответствовало остальным утверждениям elif, если я правильно понимаю
2. @troy Но это то, к чему я стремлюсь, для elif 6 lt;= урон И только тогда, если werewolf_health все еще «жив», начнется атака оборотня. Но по какой-то причине это не срабатывает. Даже если werewolf_health все еще превышает 0
3. может
damage
бытьlt; 6
, это илиgt; 20
?4. Где хранится переменная для werewolf_health? Возможно, var werewolf_health обновляется не так, как вы предполагали.