一、项目简介
迷宫只有两个门,一个门叫入口,另一个门叫出口。一个骑士骑马从入口进入迷宫,迷宫设置很多障碍,骑士需要在迷宫中寻找通路以到达出口。
迷宫问题的求解过程可以采用回溯法即在一定的约束条件下试探地搜索前进,若前进中受阻,则及时回头纠正错误另择通路继续搜索的方法。从入口出发,按某一方向向前探索,若能走通,即某处可达,则到达新点,否则探索下一个方向;若所有的方向均没有通路,则沿原路返回前一点,换下一个方向再继续试探,直到所有可能的道路都探索到,或找到一条通路,或无路可走又返回入口点。在求解过程中,为了保证在达到某一个点后不能向前继续行走时,能正确返回前一个以便从下一个方向向前试探,则需要在试探过程中保存所能够达到的每个点的下标以及该点前进的方向,当找到出口时试探过程就结束了。
根据题意可以看出这是一个有关搜索的题目,并且这可以算是一个深度优先搜索的题目,其中DFS中的一个重要的思想就是回溯,利用回溯的话是非常适合解决这类题目的。
因为地图没法改变,上交的程序中我使用了默认地图,如果想测试不同地图的话请助教修改代码…不同地图的测试我也在程序运行截图中展示了,谢谢~
因为这个题目要求的代码量比较少(主要是使用递归解决的问题,代码总是简洁明了的),我就没有使用类来解决这个问题,如下是程序中用到的比较重要的变量的声明:
源码下载地址:https://www.write-bug.com/article/1643.html
网友评论