尘埃 (Dust)
战术思路分析:定数攻击
英雄需要精确地攻击 **10 次**,然后撤退。这需要一个**计数器(`attacks`)**来控制 `while` 循环的次数。
关键:自增操作 (`+= 1`)
条件是 `while attacks < 10:`。每次循环体执行后,必须执行 `attacks += 1`,确保循环最终能够退出。
WHILE Attacks < 10:
Attack()
Attacks += 1
Python 程序解法
双颊 (Two Cheeks)
战术思路分析:两阶段任务
英雄需要按顺序完成两个不同的任务:**击败 6 个兽人**(计数器控制)和**收集 30 金币**(属性值控制)。
循环条件切换
- 阶段 1 条件:`while defeatedOgres < 6:`
- 阶段 2 条件:`while hero.gold < 30:` (使用英雄的 `gold` 属性作为动态条件)
WHILE Defeats < 6: Fight
WHILE Gold < 30: Collect
Python 程序解法
峡谷风暴 (Canyon Storm)
战术思路分析:跟随牦牛
牦牛知道风暴何时来临,只要它们在场,英雄就安全。循环条件是**牦牛是否存在**。
关键:`while yak:`
如果 `yak` 变量包含一个对象(即找到牦牛),Python 视其为 `True`;如果 `yak` 是 `None`(找不到),则为 `False`。
**必须在循环内部更新 `yak` 的值**,否则一旦找到牦牛,循环将永远不会退出。
WHILE Yak Is True:
Collect()
Yak = FindEnemy()
Python 程序解法
先有付出 才有回报 (Pay for Play)
战术思路分析:生命值限制
炎热的太阳下,英雄的健康值不断下降。英雄必须在 `hero.health` **大于 200** 时停止跑步。
循环条件:`hero.health`
`while hero.health > 200:` 循环条件依赖于一个动态变化的属性值。当 `health` 降到 200 或以下时,循环自动终止。
WHILE Health > 200: Run!
Python 程序解法
沙漠战役 (Desert Combat)
战术思路分析:定数命令
英雄必须精确地在 X 标记处下达 **5 次**命令,然后才能加入战斗。
防止死循环 (再强调一次)
条件是 `ordersGiven < 5`。**必须**在循环里执行 `ordersGiven += 1`,否则英雄将永远卡在发号施令的循环中。
Counter += 1 in While Loop
Python 程序解法
诱饵和开关 (Bait and Switch)
战术思路分析:函数化收集
英雄需要分阶段收集金币(25 金后建造诱饵,50 金后建造第二个)。我们把收集逻辑封装到一个函数 `collectUntil(enoughGold)` 中。
封装循环条件
`while hero.gold < enoughGold:` 循环条件由英雄的 `gold` 属性和函数传入的参数 `enoughGold` 共同决定。
collectUntil(25)
buildXY()
collectUntil(50)