迷宫生成的算法,深度优先。
深度优先算法生成的迷宫,其实只有一条路径,其它的都是障眼法。
根据对深度优先算法的介绍,在配合迷宫生成的逻辑,简单概括一下,就是说:
首先,我们需要生成一个被完全包围起来的迷宫,迷宫中的小房间被 “墙” 隔离起来,而我们要做的就是,使用变量表记录所有小房间状态,先将所有小房间标记为未访问,然后从某一房间开始遍历,先将起始房间标记为已访问,然后或者顺序或者随机查看相邻房间状态,如果未访问过,则访问该 相邻房间,去掉 “墙”,标记相邻房间为已访问,然后继续下一步,直到所有的房间都被访问过为止。
首先上一张原始图,其实不用画的,只是作为理解用。
本例在生成迷宫时,有些特殊的地方。首先将最外层的小房间替换成了围墙,当遍历时进入围墙内部则本次遍历结束,每一个“房间”,都是由上下左右四个线条围成,所以需要针对每一个“房间”的实际情况,画墙块。每个房间的大小为24*24,所以计算时需要定义这个尺寸值。
开始编程
第一步,创建一个角色,全程隐藏,用于生成初始迷宫。
然后初始代码,先定义三个变量,配置行列书以及每一块即“房间”大小