C++ 地图实现方法:二维数组存储地图数据
在 C++ 中,可以使用多种方法来实现地图。以下是一种基本的方法:
- 首先,需要创建一个地图类来存储地图的数据和操作。可以使用一个二维数组来表示地图,其中每个元素代表一个地图的格子。例如,可以使用整数来表示不同类型的地形,如平地、山地、水域等。
class Map {
private:
int** grid; // 存储地图数据的二维数组
int width; // 地图宽度
int height; // 地图高度
public:
Map(int w, int h) : width(w), height(h) {
grid = new int*[height];
for (int i = 0; i < height; i++) {
grid[i] = new int[width];
}
}
~Map() {
for (int i = 0; i < height; i++) {
delete[] grid[i];
}
delete[] grid;
}
// 获取地图宽度
int getWidth() const {
return width;
}
// 获取地图高度
int getHeight() const {
return height;
}
// 获取指定位置的地形类型
int getTerrain(int x, int y) const {
return grid[y][x];
}
// 设置指定位置的地形类型
void setTerrain(int x, int y, int terrain) {
grid[y][x] = terrain;
}
};
- 然后,可以创建一个地图对象,并设置地图的尺寸和地形类型。
int main() {
// 创建一个 10x10 的地图
Map map(10, 10);
// 设置地图的地形类型
for (int y = 0; y < map.getHeight(); y++) {
for (int x = 0; x < map.getWidth(); x++) {
map.setTerrain(x, y, 0); // 设置平地
}
}
// 输出地图的地形类型
for (int y = 0; y < map.getHeight(); y++) {
for (int x = 0; x < map.getWidth(); x++) {
cout << map.getTerrain(x, y) << ' '; // 注意这里使用单引号
}
cout << endl;
}
return 0;
}
上述代码创建了一个10x10的地图,并将所有格子设置为平地。然后,输出了地图的地形类型。可以根据需要修改地图的尺寸和地形类型。
原文地址: https://www.cveoy.top/t/topic/mXmJ 著作权归作者所有。请勿转载和采集!