【迷宫算法的实现】
一、条件设计
1.使用由1包围的矩阵实现,0表示为路,1表示为墙,有且仅有一个入口和出口。
2.路况判断:
1)通路,该结点有且仅有一条路可走,即=1
2)死路,该结点无路可走了,即=0
3)路口,该结点至少有一条路可走,即>1
3.如果该结点是路口,则按照顺时针方向选择下一条要走的路。
4.不能走回头路,即走过的路不能再往回走了。
二、算法实现
1.如果该结点是通路,则继续前行。
2.如果该结点是路口,则按顺时针方向选择一条路前行,并记录该结点为路口的信息(包括来到该结点时的方向、该结点的坐标等)。
3.如果该结点时死路,则返回到上一个路口,选择下一条路前行;如果该路口的所有路都已经走过了,那么就返回到上上个路口继续。
三、问题解决
1.解决不能回头的问题
方法一:如果该结点是通路,则继续前行,并设置该结点为1;如果该结点是死路,则设置该结点为1,并返回到上个路口。
方法二:记录来到该结点时的方向,在判断路况时,直接忽略来时的方向即可。
2.返回到上个路口