写一个C++迷宫程序代码
时间: 2023-11-14 22:41:56 浏览: 88
C++迷宫程序代码
当然,以下是一个简单的C++迷宫程序代码示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 定义迷宫尺寸
const int ROW = 5;
const int COL = 5;
// 定义迷宫
vector<vector<int>> maze = {
{1, 0, 1, 1, 1},
{1, 0, 1, 0, 1},
{1, 1, 1, 0, 1},
{0, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
};
// 定义访问标记数组
vector<vector<bool>> visited(ROW, vector<bool>(COL, false));
// 定义方向数组
int dir[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
// 判断坐标是否在迷宫范围内
bool isValid(int x, int y) {
return (x >= 0 && x < ROW && y >= 0 && y < COL);
}
// 深度优先搜索算法
bool dfs(int x, int y) {
if (!isValid(x, y) || maze[x][y] == 0 || visited[x][y])
return false;
visited[x][y] = true;
if (x == ROW - 1 && y == COL - 1)
return true;
for (int i = 0; i < 4; i++) {
int newX = x + dir[i][0];
int newY = y + dir[i][1];
if (dfs(newX, newY))
return true;
}
return false;
}
int main() {
if (dfs(0, 0))
cout << "迷宫有解!" << endl;
else
cout << "迷宫无解!" << endl;
return 0;
}
```
这个程序使用深度优先搜索算法来判断迷宫是否有解。迷宫由一个二维数组表示,其中1表示可通行的路径,0表示墙壁。程序从迷宫入口点开始,尝试沿着上、下、左、右四个方向进行搜索,直到找到迷宫的出口点或者无法继续前进为止。如果找到了出口点,则迷宫有解,否则无解。
以上代码只是一个简单的示例,你可以根据自己的需求进行修改和扩展。
阅读全文