📊 LEVEL 25
🛡️ 战术系统: 在线
PAGE 1/14
🤖

多分支选择结构

if - elif - else 战术指南

🔥 必杀技
⚔️ 普通攻击
🛡️ 保底方案
🎮

什么是 if-elif-else?

想象你在玩一个超级智能的战术选择游戏,面对敌人,你有三个选择:

  • 💥 如果有大招 → 放必杀技!
  • 🗡️ 否则如果很近 → 普通攻击
  • 🚪 否则 → 攻击门开路
"就像技能轮盘:先选最强的,不行选次强的,最后选保底!"
💥
🗡️
🚪
📝

语法结构

这就是多分支选择!就像有三条路可选,每次只走最适合的那条。

if 条件1成立:
    执行最强方案
elif 条件2成立:
    执行次强方案
else:
    执行保底方案
条件1 (最强)
⬇️ 否
条件2 (次强)
⬇️ 否
Else (保底)
🚁

出行方式选择

# 选择出行方式
if 有直升机:
    坐直升机() # 最快
elif 距离 < 5公里:
    骑自行车() # 中等
else:
    坐公交车() # 保底
🚁 优先!
🚲 如果近
🚌 否则
🧠

智能战斗系统

这是第25关的完整战术逻辑:

while True:
    # 1. 侦察与测量
    enemy = hero.findNearestEnemy()
    dist = hero.distanceTo(enemy)
    # 2. 三层决策
    if hero.isReady("cleave"):
        hero.cleave(enemy)
    elif dist < 5:
        hero.attack(enemy)
    else:
        hero.attack("Door")
Cleave (必杀)
Attack (普攻)
Door (打门)
🪜

执行顺序很重要!

if-elif-else 严格按照从上到下的顺序检查。

口诀:
"三兄弟,排排队,
只有一个能执行!
找到就停不回头!"

如果 if 成立了,后面的 elifelse 直接跳过!

👇
检查 If...
❌ 不成立
👇
检查 Elif...
✅ 成立!
🛑
(Else 被跳过)

技能准备好没? isReady

hero.isReady("cleave")

就像检查你的大招冷却时间 (Cooldown):

  • 🟢 True → 技能亮了,可以用!
  • 🔴 False → 技能灰的,还在读秒...
if hero.isReady("cleave"):
    hero.cleave(enemy)
⚔️
Cooldown
🤔

为什么不用多个 if?

多个 if 的坏处:

if isReady(...): cleave()
if dist < 5: attack()

后果:英雄可能会同时试图放技能又普攻,导致混乱!


if-elif 的好处:
只执行一个最合适的动作,井井有条。

😵‍💫

英雄:
"又要我劈砍,又要我普攻,
我太难了!"

🗺️

程序思维导图

看一看高手的思维过程:

  1. 开始新一轮思考
  2. 侦察敌人位置,目测距离
  3. 问:大招好了吗?
    → 好了就放!(结束)
  4. 问:没好...那敌人近吗?
    → 近就砍!(结束)
  5. 叹气:都不行...
    → 那就去砸门吧。
Start Loop
⬇️
Cleave?
⬇️ No
Close?
⬇️ No
Attack Door
📚

重要概念解析

1. 布尔函数 (Boolean Function)

isReady() 是一个会回答 Yes/No 的函数。

返回 True (真) 或 False (假)。

2. 字符串参数 (String Parameter)

"cleave" 是传给函数的暗号。

isReady("cleave") # 查劈砍
isReady("shield") # 查盾牌
📜

参数就像给函数的
小纸条

🎪

编程马戏团

想象有三个杂技演员在等待上场,但舞台只能容纳一人:

if 有火焰圈:
    跳火圈() # 最精彩!
elif 有高台:
    翻跟头() # 次精彩
else:
    走钢丝() # 基础表演
🦁 🔥 🤸
🎯

为什么这个顺序很聪明?

1. Cleave (第一位)
它是范围攻击,伤害高,CD长。有就要用,不用浪费!
2. Attack (第二位)
单体攻击。只有大招没好,且敌人很近容易打中时才用。
3. Door (最后)
打门是为了过关,但不能顶着敌人的攻击去打门,所以最后考虑。
🏅
🚀

增加更多条件?

你可以加无数个 elif

if isReady("cleave"):
    cleave()
elif health < 20: # 快死了?
    runAway()
elif distance < 5:
    attack()
elif distance < 10:
    shoot() # 射箭
else:
    wait()
🧱

像搭积木一样
叠加战术!

🎓

记忆口诀

"if-elif-else 三层楼,
从上往下走,
找到就停不回头!"


"大招优先,距离其次,
保底方案要牢记!"

🏆