走迷宫c语言程序代码
时间: 2023-11-28 14:02:14 浏览: 93
走迷宫是一个经典的问题,在C语言中可以通过递归的方式实现。下面是一个简单的例子:
```c
#include <stdio.h>
#define SIZE 5
int maze[SIZE][SIZE] = {
{0, 1, 0, 0, 0},
{0, 1, 0, 1, 0},
{0, 0, 0, 0, 0},
{0, 1, 1, 1, 0},
{0, 0, 0, 1, 0}
};
int solveMaze(int x, int y) {
if (x < 0 || x >= SIZE || y < 0 || y >= SIZE) { // 超出迷宫边界
return 0;
}
if (maze[x][y] == 0) { // 遇到墙壁或已经走过的路径
return 0;
}
if (x == SIZE - 1 && y == SIZE - 1) { // 到达终点
return 1;
}
maze[x][y] = 0; // 标记已经走过的路径
// 向四个方向探索
if (solveMaze(x + 1, y)) { // 向右走
return 1;
}
if (solveMaze(x, y + 1)) { // 向下走
return 1;
}
if (solveMaze(x - 1, y)) { // 向左走
return 1;
}
if (solveMaze(x, y - 1)) { // 向上走
return 1;
}
return 0; // 未找到通路
}
int main() {
if (solveMaze(0, 0)) {
printf("迷宫有解\n");
} else {
printf("迷宫无解\n");
}
return 0;
}
```
以上代码定义了一个5x5的迷宫,0代表墙壁,1代表可走路径。`solveMaze`函数使用递归的方式来解决迷宫问题,从起点(0, 0)开始尝试向四个方向走,如果找到了通路,则返回1,否则返回0。在`main`函数中调用`solveMaze`函数,根据返回值判断迷宫是否有解。
阅读全文