Robbie 现在不只是读地图了,他要实际在火星上移动、探索地质特征、记录旅程,这就需要更复杂的状态管理与逻辑控制。
🧭 Robbie 的核心能力新增:
🟢 位置移动规则:
- 起始位置为 (0, 0)
- 只能上下左右移动,每次移动耗时 1 天
- 地图可环绕(超出边界会从另一端回来)
- 在路径选择上:
- 优先选 最短路径
- 如果有多个等长路径,优先使用环绕
🟢 探索规则:
- 到达有地质特征的位置时可执行
explore
- 探索时间 = 特征大小 / Robbie 当前的探索速度
- 只向上取整到天数(1.3 天算作 2 天)(
math.ceil
就可以)
- 每探索一个特征,该类特征的速度提高 20%
- 空地探索不花时间
🧱 模块职责划分:
2. robot.py
(新增)
Robbie 的本体类
Robot
,负责:- 当前坐标
self.location
- 总耗时
self.total_days
- 当前各类特征的探索速度(初始见题目表格)
- 已探索日志(用于 display journey)
- 提供:
.move_to(y, x)
.explore(feature)
.display_journey()
3. task2.py
- 支持额外命令:
moveto Y X
explore
display journey
总结
Task 2 大幅扩展了 Robbie 的智能行为,引入了“移动”、“探索”、“成长”的过程。这要求我们用清晰的类设计来封装状态,用继承和多态来保持不同地质类型的统一接口,确保程序既灵活又易维护。