在C++中,创建一个Maze类,可以使用16位无符号整数数组来表示迷宫的结构和状态。以下是一个简单的示例:
#include<iostream>
#include<vector>
class Maze {
public:
Maze(uint16_t width, uint16_t height)
: width_(width), height_(height), maze_(width * height, 0) {}
void setWall(uint16_t x, uint16_t y, bool isWall) {
maze_[y * width_ + x] = isWall ? 1 : 0;
}
bool isWall(uint16_t x, uint16_t y) const {
return maze_[y * width_ + x] == 1;
}
uint16_t width() const { return width_; }
uint16_t height() const { return height_; }
private:
uint16_t width_;
uint16_t height_;
std::vector<uint16_t> maze_;
};
int main() {
Maze maze(5, 5);
maze.setWall(1, 1, true);
maze.setWall(1, 2, true);
maze.setWall(2, 1, true);
maze.setWall(2, 2, true);
for (uint16_t y = 0; y < maze.height(); ++y) {
for (uint16_t x = 0; x < maze.width(); ++x) {
std::cout << (maze.isWall(x, y) ? "X" : " ");
}
std::cout<< std::endl;
}
return 0;
}
这个示例中,我们创建了一个Maze类,使用16位无符号整数数组表示迷宫的结构和状态。Maze类有一个构造函数,接受迷宫的宽度和高度作为参数,并初始化一个大小为宽度乘以高度的整数数组,用于表示迷宫的结构和状态。Maze类还有一个setWall函数,用于设置迷宫中指定位置的墙壁状态,以及一个isWall函数,用于检查迷宫中指定位置是否有墙壁。
在main函数中,我们创建了一个5x5的迷宫,并设置了一些墙壁的位置,然后使用嵌套循环遍历迷宫中的每个位置,输出迷宫的结构和状态。
领取专属 10元无门槛券
手把手带您无忧上云