Lazy loaded image
Task 2 - Robbie the Explorer
Words 437Read Time 2 min
2025-5-20
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 的智能行为,引入了“移动”、“探索”、“成长”的过程。这要求我们用清晰的类设计来封装状态,用继承和多态来保持不同地质类型的统一接口,确保程序既灵活又易维护。