#define N 6
int maze[N][N] =
{
{0,0,0,0,0,0},
{0,0,1,1,1,0},
{0,0,1,0,1,0},
{0,0,1,1,1,0},
{0,0,1,0,1,1},
{0,0,1,0,0,0},
};
通过一个数字来创造一个6*6的迷宫,其中0代表墙,1代表能够走的路。
这里将数组通过画图软件画出来,这里红色的1代表迷宫的入口,绿色的1代表迷宫的出口。
这个数组所创建的迷宫是相对复杂的一种迷宫,首先这个迷宫是存在环的
这几个1,如果你的迷宫函数只是用简单的循环程序来走或者说通过普通的递归那你就很有可能程序崩掉,陷入一个死循环。
其次就是这个迷宫是存在两条路的,通过两条路可以出去,但是一个长一个短,应该通过什么算法才能找到那条短的路径,这是一个需要思考的问题。
最简单的方法,如果这个迷宫不带环的话,那完全可以通过递归来完成。
int CheckPath(int *a, Pos next, int n)
{
if (next._col < n && next._col >= 0
&& next._row >= 0 && next._row < n
&& (a[next._row*n + next._col] == 1))
return 1;