使用博文 C 语言 prim(深度优先改进)算法 生成迷宫 中的算法生成迷宫:
使用 递归寻路算法 得到的路径:
- 算法思想
从起点出发,下一步都有四种选择(上下左右),先选择一个方向,如果该方向能够走下去,那么就往这个方向走,当前位置切换为下一个位置。如果不能走,那么换个方向走,如果所有方向都走不了,那么退出当前位置,到上一步的位置去,当前位置切换为上一步的位置。一直这样执行下去,如果当前位置是终点,那么结束。如果走过了所有的路径都没能到达终点,那么无解。
- 具体实现
1、使用一个二维数组存储迷宫地图数据,使用一个二维数组存储生成地图的访问标识,另使用一个二维数组存储寻路时的访问标识。因为每两堵墙之间应有一条通道,因此迷宫行列值应为奇数:#include<graphics.h> #include<conio.h> #include<stdlib.h> #include<time.