写一个迷宫老鼠的c++代码
时间: 2024-03-15 17:17:29 浏览: 115
老鼠走迷宫C++
好的,我可以提供一个迷宫游戏的C代码。以下是简单的示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define ROWS 6
#define COLS 6
char maze[ROWS][COLS] = {
{'#', '#', '#', '#', '#', '#'},
{'#', '.', '.', '.', '#', '#'},
{'#', '#', '#', '.', '#', '#'},
{'#', '.', '#', '.', '.', '#'},
{'#', '.', '.', '#', '.', '#'},
{'#', '#', '#', '#', '#', '#'}
};
bool solvable = false;
void printMaze() {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%c", maze[i][j]);
}
printf("\n");
}
}
void findPath(int x, int y) {
if (maze[x][y] == '.') {
maze[x][y] = 'X';
if (x == ROWS - 2 && y == COLS - 2) {
solvable = true;
printMaze();
}
else {
findPath(x + 1, y);
findPath(x - 1, y);
findPath(x, y + 1);
findPath(x, y - 1);
}
maze[x][y] = '.';
}
}
int main() {
findPath(1, 1);
if (!solvable) {
printf("No solution found.\n");
}
return 0;
}
```
这个程序使用递归来查找迷宫中的路径。它遍历每个位置,如果它是一个空格(即“.”),那么它就是可以到达的。如果它是终点,那么我们打印出来并把`solvable`变量设为true。否则,我们用递归找到四个方向上的路径,每次递归之前把当前位置标为“X”,并在递归完成后把当前位置重新标为“.”。
值得注意的是,这个代码示例只是个简单的示例,并非通用算法,不能解决所有的迷宫问题。
阅读全文