c++随机生成障碍物代码
时间: 2024-08-01 12:00:26 浏览: 131
在C++中,生成随机障碍物通常涉及到游戏编程或模拟场景中的元素生成。这里是一个简单的示例,展示如何使用`<random>`库和基本的二维数组来表示地图,其中一些位置被随机标记为障碍:
```cpp
#include <iostream>
#include <vector>
#include <random>
// 地图大小
const int MAP_SIZE = 10;
// 障碍物出现的概率
const double OBSTACLE_PROBABILITY = 0.2;
// 随机数生成器
std::mt19937 rng(std::chrono::system_clock::now().time_since_epoch().count());
// 定义一个结构体代表一个地图单元
struct Cell {
bool isObstacle;
};
// 生成随机地图
std::vector<Cell> generateRandomMap() {
std::vector<Cell> map(MAP_SIZE, {false}); // 初始化所有位置为非障碍
// 使用随机数生成器选择哪些位置作为障碍
for (int i = 0; i < MAP_SIZE; ++i) {
for (int j = 0; j < MAP_SIZE; ++j) {
if (std::uniform_real_distribution<>(0.0, 1.0)(rng) < OBSTACLE_PROBABILITY) {
map[i][j].isObstacle = true;
}
}
}
return map;
}
int main() {
std::vector<Cell> map = generateRandomMap();
// 打印地图,X 表示障碍,空格表示可通行
for (int i = 0; i < MAP_SIZE; ++i) {
for (int j = 0; j < MAP_SIZE; ++j) {
std::cout << (map[i][j].isObstacle ? 'X' : ' ');
}
std::cout << '\n';
}
return 0;
}
```
阅读全文