在 ArrayList 中存储二维网格中对象的坐标和特征

Storing coordinates and characteristics of objects in a 2D grid in an ArrayList

我有一个网格,由一个数组构成,每个数组包含 1 个字符 (char [][])。

在那个网格上,我建造了房子,占据了网格的一个或多个块。 我想将位置(网格坐标)和特征(价格、维护)存储在某种列表中。

房子对象是枚举的一部分,其中包含多个具有以下特征的对象:

public enum Building {
    HOUSE(width, height, price, upkeep, symbol)
    FACTORY(width, height, price, upkeep, symbol)
}

- width 和 height 是它在网格中占据的瓦片数 - 符号是在网格中用来表示特定建筑物的字符

我想这样做:(伪代码)

ArrayList<house> buildings = new ArrayList<House>

但是我如何添加房屋的位置(此 arrayList 中的 x 和 y 坐标?我应该使用其他数据类型吗?

我觉得你的枚举应该是 BuildingType 如果你的两个房子对象可以有不同的属性,比如你提到的位置。

创建一个 Building class,它有类似 int x; int y; 的内容和一个 BuildingType(枚举),指示它是哪种建筑物。

如果有必要,您可以拥有超级 class Building 和两个(或更多?)子类型(HouseFactoryApartment等)在这种情况下,您不再需要枚举。一切都按照您的要求。