一、使用说明
1.1 项目简介
迷宫只有两个门,一个门叫入口,另一个门叫出口。一个骑士骑马从入口进入迷宫,迷宫设置很多障碍,骑士需要在迷宫中寻找通路以到达出口。
1.2 项目功能要求
提示:
可以采用二维数组,回溯和递归或非递归加栈实现
也可以用BFS算法(即图的广度优先搜索算法,又叫宽度优先搜索算法)
如果用数组的方法,则如果有多条出路,只需要显示一条出路即可,且不一定需要选出最短出路
如果用BFS的方法,则需要显示所有的出路
迷宫问题的求解过程可以采用回溯法,即在一定的约束条件下试探地搜索前进,若前进中受阻,则及时回头纠正错误另择通路继续搜索的方法。从入口出发,按某一方向向前探索,若能走通,即某处可达,则到达新点,否则探索下一个方向;若所有的方向均没有通路,则沿原路返回前一点,换下一个方向再继续试探,直到所有可能的道路都探索到,或找到一条通路,或无路可走又返回入口点。在求解过程中,为了保证在达到某一个点后不能向前继续行走时,能正确返回前一个以便从下一个方向向前试探,则需要在试探过程中保存所能够达到的每个点的下标以及该点前进的方向,当找到出口时试探过程就结束了。
1.3 项目要求
迷宫的行数,列数和起点坐标由用户输入(行数和列数可以不相等),不能由程序定死
迷宫地图需由用户输入,可以用1代表障碍,0代表通路
规定第一行,最后一行,第一列,最后一列是墙壁。如果迷宫有出路,则必须从墙壁进,最后从墙壁出,但起点和终点不能是同一个点
参考文档和完整的文档和源码下载地址: