✅ 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
命令
例如:
流程为:
InfoMap.get_mission(name)
获取任务坐标。
Robot.mission()
模拟所有变形形态并择优执行。
- 自动移动、探索、记录日志。