第 7 关
海市蜃楼 (Mirage)
战术思路分析:状态驱动任务
英雄必须根据自身状态(金钱或生命值)按顺序完成三个任务:
循环条件切换
- **任务 1 (收集):** `while hero.gold < 25:`
- **任务 2 (挑衅):** `while hero.health == hero.maxHealth:` (英雄满血才敢挑衅)
- **任务 3 (撤退):** 最后的移动命令。
WHILE Gold < 25: Collect
WHILE Health == MaxHealth: Taunt
Python 程序解法
1
# 当你的金钱小于 25 时,收集金币。
2
while hero.gold < 25:
**阶段 1:** 循环条件:金币不足 25
3
coin = hero.findNearest(hero.findItems())
寻找最近的硬币
4
if coin:
5
hero.moveXY(coin.pos.x, coin.pos.y)
移动收集
6
# 在 while 循环后,在白色X处建造一个 "decoy"。
7
hero.buildXY("decoy", 71, 68)
建造诱饵
8
# 当你的 health 等于 maxHealth, 使用 `say` 来挑衅兽人
9
while hero.health == hero.maxHealth:
**阶段 2:** 循环条件:血量等于最大血量
10
hero.say("Ogres stink!")
挑衅(直到受到伤害)
11
# 然后退回到红色 X 处。
12
hero.moveXY(22, 15)
移动到撤退点
第 8 关
菠菜力量 (Spinach Power)
战术思路分析:精确计数
英雄必须收集**正好 7 瓶**药水,不多不少。
关键:`while potionCount < 7`
使用 `< 7` 确保循环在 `potionCount` 为 0 到 6 时执行,刚好执行 7 次。每次循环后必须 `potionCount += 1`。
WHILE Count < 7:
Collect()
Count += 1
Python 程序解法
1
potionCount = 0
初始化药水计数器
2
3
while potionCount < 7:
循环条件:次数小于 7
4
item = hero.findNearestItem()
寻找最近物品
5
if item:
如果找到了药水
6
hero.moveXY(item.pos.x, item.pos.y)
移动收集
7
potionCount += 1
计数器自增
8
9
# 当 while 循环结束时,去战斗吧!
10
while True:
开始无限战斗循环
11
enemy = hero.findNearestEnemy()
12
if enemy:
13
hero.attack(enemy)
攻击敌人