Scratch之迷宫自动生成一(深度优先递归)

本文介绍了如何利用深度优先算法在Scratch中生成迷宫。通过创建角色、设置变量和列表,以及自定义积木块,逐步构建一个完全封闭的迷宫并去除墙壁,形成随机路径。在迷宫生成过程中,会特别处理最外层围墙,并通过记录房间状态进行遍历,直至所有房间被访问过。
摘要由CSDN通过智能技术生成

迷宫生成的算法,深度优先。
深度优先算法生成的迷宫,其实只有一条路径,其它的都是障眼法。
根据对深度优先算法的介绍,在配合迷宫生成的逻辑,简单概括一下,就是说:
首先,我们需要生成一个被完全包围起来的迷宫,迷宫中的小房间被 “墙” 隔离起来,而我们要做的就是,使用变量表记录所有小房间状态,先将所有小房间标记为未访问,然后从某一房间开始遍历,先将起始房间标记为已访问,然后或者顺序或者随机查看相邻房间状态,如果未访问过,则访问该 相邻房间,去掉 “墙”,标记相邻房间为已访问,然后继续下一步,直到所有的房间都被访问过为止。

首先上一张原始图,其实不用画的,只是作为理解用。
在这里插入图片描述
本例在生成迷宫时,有些特殊的地方。首先将最外层的小房间替换成了围墙,当遍历时进入围墙内部则本次遍历结束,每一个“房间”,都是由上下左右四个线条围成,所以需要针对每一个“房间”的实际情况,画墙块。每个房间的大小为24*24,所以计算时需要定义这个尺寸值。

开始编程
第一步,创建一个角色,全程隐藏,用于生成初始迷宫。在这里插入图片描述

然后初始代码,先定义三个变量,配置行列书以及每一块即“房间”大小

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值