C语言经典算法 - 老鼠走迷官(一)
2020-02-10
编程之家
https://www.jb51.cc
编程之家收集整理的这篇文章主要介绍了C语言经典算法 - 老鼠走迷官(一),编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
@H_301_5@
@H_301_5@
@H_301_5@
#include
#include
int visit(int,int);
int maze[7][7] = {{2,2,2},{2,2}};
int startI = 1,startJ = 1; // 入口
int endI = 5,endJ = 5; // 出口
int success = 0;
int main(void)
{
int i,j;
printf("显示迷宫:\n");
for (i = 0; i < 7; i++)
{
for (j = 0; j < 7; j++)
if (maze[i][j] == 2)
printf("█");
else
printf(" ");
printf("\n");
}
if (visit(startI,startJ) == 0)
printf("\n没有找到出口!\n");
else
{
printf("\n显示路径:\n");
for (i = 0; i < 7; i++)
{
for (j = 0; j < 7; j++)
{
if (maze[i][j] == 2)
printf("█");
else if (maze[i][j] == 1)
printf("◇");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
int visit(int i,int j)
{
maze[i][j] = 1;
if (i == endI && j == endJ)
success = 1;
if (success != 1 && maze[i][j + 1] == 0)
visit(i,j + 1);
if (success != 1 && maze[i + 1][j] == 0)
visit(i + 1,j);
if (success != 1 && maze[i][j - 1] == 0)
visit(i,j - 1);
if (success != 1 && maze[i - 1][j] == 0)
visit(i - 1,j);
if (success != 1)
maze[i][j] = 0;
return success;
}