Geo Features 模块设计说明 (geo_features.py
)
🧱 1. 模块功能概述
本模块定义了所有地理特征相关的类,包括抽象父类
GeoFeature
及其子类 Mountain
、Lake
和 Crater
,用于表示地图中的不同地貌单元。每个地貌单元具有位置、类型、描述和强度数值,供探索机器人系统调用和显示。🧩 2. 类结构图(简略)
📦 3. 类及属性设计说明
🔹 Location
类
- 作用:存储二维坐标
(Y, X)
。
- 属性:
Y
:行号(高度方向)X
:列号(宽度方向)
- 方法:
__str__()
:返回字符串格式如(2,3)
,用于打印与日志。
🔹 Size
类
- 作用:描述地图的整体大小。
- 属性:
height
:地图高度(行数)width
:地图宽度(列数)
🔹 GeoFeature
类(抽象基类)
- 属性:
location
:位置(Location
对象)description
:地貌描述,如"lava rocks"
integer
:地貌强度数值,如 60、40unit
:度量单位(由子类设定,如"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
父类构造函数中,便于统一管理和未来扩展。