Lazy loaded image
geo_features.py
Words 456Read Time 2 min
2025-5-24

Geo Features 模块设计说明 (geo_features.py)


🧱 1. 模块功能概述

本模块定义了所有地理特征相关的类,包括抽象父类 GeoFeature 及其子类 MountainLakeCrater,用于表示地图中的不同地貌单元。每个地貌单元具有位置、类型、描述和强度数值,供探索机器人系统调用和显示。

🧩 2. 类结构图(简略)


📦 3. 类及属性设计说明

🔹 Location

  • 作用:存储二维坐标 (Y, X)
  • 属性
    • Y:行号(高度方向)
    • X:列号(宽度方向)
  • 方法
    • __str__():返回字符串格式如 (2,3),用于打印与日志。

🔹 Size

  • 作用:描述地图的整体大小。
  • 属性
    • height:地图高度(行数)
    • width:地图宽度(列数)

🔹 GeoFeature 类(抽象基类)

  • 属性
    • location:位置(Location 对象)
    • description:地貌描述,如 "lava rocks"
    • integer:地貌强度数值,如 60、40
    • unit:度量单位(由子类设定,如 "height", "depth"
    • type_:地貌类型字符串,如 "mountain""lake"
  • 方法
    • get_type():返回地貌类型
    • get_description():返回地貌描述
    • get_icon():返回类型首字母(用于地图打印)
    • get_integer():返回数值
    • __str__():返回如 "mountain lava rocks, height 60" 的字符串

⛰ 4. 子类设计说明

子类名
类型字段 (type_)
单位字段 (unit)
Mountain
"mountain"
"height"
Lake
"lake"
"depth"
Crater
"crater"
"perimeter"
每个子类只负责将具体的类型信息传入 GeoFeature 父类构造函数中,便于统一管理和未来扩展。