在 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
和两个(或更多?)子类型(House
、Factory
、Apartment
等)在这种情况下,您不再需要枚举。一切都按照您的要求。
我有一个网格,由一个数组构成,每个数组包含 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
和两个(或更多?)子类型(House
、Factory
、Apartment
等)在这种情况下,您不再需要枚举。一切都按照您的要求。