python - 为什么我的 else 语句有时会触发,但并非总是如此?
问题描述
我正在尝试制作一个包含一些战斗的冒险游戏。
但是,那
else:
print("The werewolf took " + str(damage) + " damage. " + str(werewolf_health) + " health remains.")
触发器(以及它下面的代码)有时只会触发。你能帮我解释一下为什么吗?
这是代码:
def attack():
werewolf_health = 100
user_health = 100
while werewolf_health > 0:
attack = input(">").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 <= 0:
print(random.choice(werewolf_death))
resolution()
elif 17 <= damage <= 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 <= 0:
print(random.choice(werewolf_death))
resolution()
elif 6 <= damage <= 16:
print(random.choice(sword_avg))
werewolf_health = werewolf_health - damage
if werewolf_health <= 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) + ".")
解决方案
推荐阅读
- c++ - RC4 未生成正确的加扰状态数组
- c++ - 如何使用数组查找标准偏差
- javascript - 如何在提交时将输入日期格式从 MM dd yy 更改/转换为 yyyy-mm-dd
- javascript - 三.js改变每个粒子的轴心点
- wpf - 在 Core 3 客户端中找不到 WithUrl()
- scala - 在 Spark scala 中读取简单 JSON 文件时将所有记录设为 NULL
- python - 如何让python只读取文本文件的内容一次
- android - 如何使用 onPause(后退按钮)发送结果 Intent
- matplotlib - 情节未出现在 Jupyter
- java - AmazonSQSClientBuilder.defaultClient() java.lang.NoSuchFieldError:没有 Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier 类型的静态字段实例