币屑 (Coin Shrapnel)
战术思路分析:寻宝三部曲
藏宝室里布满了陷阱,只有跟着硬币的轨迹才能安全逃脱。这里的硬币就像**会移动的导游**。
关键概念:嵌套属性
把物品看成一个装有信息的箱子。
1. 找到箱子:`item` (物品对象)
2. 找到箱子里的位置图:`item.pos` (位置对象)
3. 找到图上的坐标:`item.pos.x` 和 `item.pos.y`
步骤拆解(变量存储):
`itemPosition = item.pos` → `itemX = itemPosition.x` → `hero.moveXY(itemX, itemY)`
item → pos → x, y
item.pos.x
Python 程序解法
白兔 (The White Rabbit)
战术思路分析:跟着光点跑
陷阱太多,跟着发光石(像爱丽丝梦游仙境的白兔一样)是唯一的生路。发光石移动很快,你需要快速锁定它的位置。
嵌套属性的另一种写法
本关的解法与上关类似,但它强调了使用**中间变量**来让代码更清晰易懂。虽然 `hero.moveXY(item.pos.x, item.pos.y)` 可以一步到位,但像下面这样分步操作,能帮助你理解数据流:
1. `position = item.pos` (找到位置图)
2. `x = position.x` (读取 X 坐标)
3. `hero.moveXY(x, y)` (移动)
item → position → x, y
更容易追踪数据
Python 程序解法
伪装者 (Impostors)
战术思路分析:拆穿伪装
食人魔伪装成了金币!你必须靠近物品来检查。这个关卡要求你同时处理两种逻辑:
双重逻辑链
1. **安全优先:** 如果发现敌人 (`enemy = hero.findNearestEnemy()`),立即攻击。
2. **寻宝路径:** 否则,寻找最近的物品 (`item = hero.findNearestItem()`),然后移动过去。
精简访问
你可以像下面这样直接使用 `.pos` 属性:`hero.moveXY(item.pos.x, item.pos.y)`。这是一种更简洁的写法。
IF Enemy: Attack()
ELSE IF Item: MoveTo(Item)
Python 程序解法
概念挑战. 富有且安全 (Rich and Safe)
战术思路分析:最短路径
食人魔不会攻击宝石,所以捡起宝石就能躲避火焰。你需要以最简洁的方式,将英雄移动到宝石的位置。
精简写法:直接访问
这是最常用的写法!无需中间变量,直接使用点号连接属性:
`hero.moveXY(item.pos.x, item.pos.y)`
item.pos.x, item.pos.y
Clean and Concise
Python 程序解法
组合挑战. 风向校正 (Wind Correction)
战术思路分析:炮火计算
大风让炮弹偏离目标!你需要结合所有学过的知识来修正瞄准:
- **知识点 1 (属性访问):** 获取敌人的原始 Y 坐标:`enemy.pos.y`
- **知识点 2 (算术运算):** 修正风向:`enemy.pos.y - 4`
- **知识点 3 (字符串连接):** 拼接炮火命令:`X + "," + Y_corrected`
注意分隔符!
这次火炮需要的是**逗号**(`,`)作为分隔符,而不是空格。所以拼接时必须使用 `","` 字符串。
Y_correct = Y - 4
Say(X + "," + Y_correct)