Lazy loaded image
Task3.py
Words 308Read Time 1 min
2025-5-24

✅ 1. 类结构:InfoMap

负责:
  • 读取 /home/geo_features.txt 文件。
  • 创建地图大小(Size(height, width))。
  • 初始化每个地理单元格(mountain, lake, crater)。
  • 提供地图显示、探索信息查询、任务名称定位等功能。

方法说明:

  • __init__():读取文件,初始化地图。
  • add_element():解析每行文本,构造 geo_features 对象。
  • __str__():打印地图,可视化标记特征(如山、湖等)。
  • get_info(Y, X):返回当前位置的地质信息。
  • get_mission(name):根据特征描述查找其在地图中的坐标。

✅ 2. 主函数 main()

主交互流程,通过命令行控制机器人 Robbie 执行任务:

启动阶段:

  • 加载地形数据。
  • 创建机器人对象 robbie

✅ 3. 命令处理逻辑

用户通过命令行输入操作指令,主循环处理如下指令:
命令格式
功能说明
quit
退出程序
show map
输出地图可视化(带地质图标)
info Y X
显示坐标 (Y, X) 的地质信息
moveto Y X
移动机器人到目标坐标
explore
对当前位置执行探索任务
display journey
显示机器人完整行动日志
mission name1,name2,...
执行给定任务描述名的最佳路径探索

✅ 4. 任务处理:mission 命令

例如:
流程为:
  1. InfoMap.get_mission(name) 获取任务坐标。
  1. Robot.mission() 模拟所有变形形态并择优执行。
  1. 自动移动、探索、记录日志。