CodeCombat 借刀杀人

集火最强目标(第 36 关)

第 36 关

借刀 (Borrowed Sword)

战术思路分析:集火最强

食人魔和雪人在互殴,你的弓箭手不能参与混战,必须集火攻击**当前生命值最高**的敌人(即,战场上那个最“肉”的)。这样可以确保你的火力不会浪费在小兵身上,而是帮助其中一方尽快清理战场。

Max Search 算法与 For 循环

1. **初始化:** `toughest = None`,`mostHealth = 0`。
2. **遍历查找:** 使用 `for enemy in enemies:` 遍历所有敌人。
3. **更新:** `if enemy.health > mostHealth:` 成立时,更新 `toughest` 和 `mostHealth`。
4. **指挥:** 找到最强目标后,使用第二个 `for` 循环命令所有盟友攻击该目标。

Find Toughest for Friend: Command("attack", Toughest)

Python 程序解法

1
while True:
外层无限循环,持续决策
2
toughest = None
初始化最强敌人
3
mostHealth = 0
初始化最高生命值
4
enemies = hero.findEnemies()
获取敌人数组
5
for enemy in enemies:
**阶段 1:** 遍历敌人,查找最强目标
6
if enemy.health > mostHealth:
如果找到生命值更高的敌人
7
toughest = enemy
更新最强敌人
8
mostHealth = enemy.health
更新最高生命值
9
if toughest:
**阶段 2:** 如果找到了目标
10
friends = hero.findFriends()
获取盟友数组
11
for friend in friends:
遍历盟友
12
hero.command(friend, "attack", toughest)
命令盟友攻击最强目标(集火)