用c语言写一个迷宫的代码
时间: 2023-04-06 08:01:01 浏览: 99
用C语言编写的一个迷宫程序
你好,我可以回答这个问题。以下是一个简单的迷宫代码示例:
#include <stdio.h>
#define ROW 10
#define COL 10
int maze[ROW][COL] = {
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 1, 0, 0, 0, 0, 1},
{1, 0, 1, 0, 1, 0, 1, 1, 0, 1},
{1, 0, 1, 0, 0, 0, 0, 1, 0, 1},
{1, 0, 1, 1, 1, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 1, 0, 1, 0, 1},
{1, 0, 1, 1, 0, 1, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1, 0, 1},
{1, 0, 1, 1, 1, 1, 1, 1, 0, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};
int visited[ROW][COL];
int dfs(int x, int y) {
if (x == ROW - 1 && y == COL - 1) {
return 1;
}
visited[x][y] = 1;
if (x - 1 >= 0 && maze[x - 1][y] == 0 && visited[x - 1][y] == 0) {
if (dfs(x - 1, y)) {
return 1;
}
}
if (x + 1 < ROW && maze[x + 1][y] == 0 && visited[x + 1][y] == 0) {
if (dfs(x + 1, y)) {
return 1;
}
}
if (y - 1 >= 0 && maze[x][y - 1] == 0 && visited[x][y - 1] == 0) {
if (dfs(x, y - 1)) {
return 1;
}
}
if (y + 1 < COL && maze[x][y + 1] == 0 && visited[x][y + 1] == 0) {
if (dfs(x, y + 1)) {
return 1;
}
}
return 0;
}
int main() {
if (dfs(1, 1)) {
printf("迷宫有解\n");
} else {
printf("迷宫无解\n");
}
return 0;
}
希望能对你有所帮助。
阅读全文