📄 maze.cpp
字号:
#include <iostream>
const int size=5;
const bool T=true;
const bool F=false;
bool MARK[size][size];
bool GetMaze(bool Maze[size][size],int x,int y);
int main()
{
bool Maze[size][size]= //设置迷宫
{
{T, F, F, T, F},
{F, T, T, F, F},
{F, F, T, F, T},
{F, T, T, T, F},
{F, F, F, T, T},
};
int i,j;
printf("如果迷宫不可过,没有任何输出!\n");
printf("倒输路径:\n");
for(i=0;i<size;i++)
for(j=0;j<size;j++)
MARK[size][size]=false; //判断路径是否走过的矩阵初值为零
GetMaze(Maze,0,0); //完成走迷宫过程
return 0;
}
bool GetMaze(bool Maze[size][size],int x,int y)
{
int X,Y;
int MOVE[8][2] = {{0, -1},{1, 0}, {0, 1}, {-1, 0}, {1, 1}, {1, -1}, {-1, -1}, {1, -1}};
int i;
if ((size-1)==x&&(size-1)==y) //判断迷宫是否走到头
return true;
else
{
for(i=0;i<8; i++) //记录走过的路径,如果迷宫可通过
{
MARK[x][y]=true;
X =x+MOVE[i][0];
Y =y+MOVE[i][1];
if(X>=0&&X<size&&Y>=0&&Y<size&&Maze[X][Y]&&!MARK[X][Y])
{
if(GetMaze(Maze,X,Y)) //递归过程
{
printf("y=%d , x=%d \n", X, Y); //输出结果
return true;
}
}
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -