团队合作 (Teamwork)
战术思路分析:分工合作
三颗宝石,三个人分工收集。`hero.findItems()` 返回一个包含所有宝石的**列表(数组)**。
核心:索引从 0 开始
列表中的元素是从 **0** 数起的。
- 第一个元素:`items[0]`
- 第二个元素:`items[1]`
- 第三个元素:`items[2]`
Items = [Gem A, Gem B, Gem C]
Gem A = Items[0]
Python 程序解法
协助防御 (Assisted Defense)
战术思路分析:避免空列表错误
英雄只负责攻击列表中的**第一个敌人** (`enemies[0]`)。如果列表是空的,直接读取 `enemies[0]` 会导致程序崩溃。
核心:检查列表长度 (`len()`)
我们使用 `if len(enemies) > 0:` 来确保列表中至少有一个元素。
`len()` 函数返回列表的长度。一个空列表的长度为 0。
IF len(Enemies) > 0:
Attack(Enemies[0])
Python 程序解法
招募队伍 (Recrut)
战术思路分析:动态更新列表
农民(被检测为敌人)一旦被招募,就会从列表中消失。英雄必须在每次循环中**更新**农民列表。
核心:循环末尾的 `findEnemies()`
我们必须在 `while` 循环的**末尾**重新调用 `neutrals = hero.findEnemies()`。这样,每次新的迭代开始时,`neutrals` 列表都是最新的。
WHILE ...:
Say Name
List = FindEnemies()
Python 程序解法
第二宝石 (Second Gem)
战术思路分析:排除陷阱
第一个宝石是陷阱,**第二个宝石**才是安全的。
关键:索引 1
- 第二个宝石的索引是 **`1`**。
- 访问前,必须检查 `len(items) >= 2`,以防止访问不存在的元素而导致程序崩溃。
IF len(Items) >= 2:
Move(Items[1])
Python 程序解法
Sarven 救世主 (Sarven Savior)
战术思路分析:列表遍历
英雄有朋友名字的列表,需要**逐个**呼叫他们回家。
遍历三要素
- **初始化:** `friendIndex = 0`
- **条件:** `while friendIndex < len(friendNames):` (索引小于列表长度)
- **步进:** `friendIndex += 1` (每次循环后索引加 1)
WHILE Index < len(List):
Say(List[Index])
Index += 1