Scratch之自动走迷宫

如何让程序自己走迷宫是一个挺深奥的问题,涉及到生成迷宫的prim算法、深度优先算法,走迷宫的广度优先算法、深度优先算法等。不过那些都有一定难度,我们还是先从最简单的一种算法开始吧,这种自动走迷宫的算法其实是把自己当成盲人走迷宫。这就是“左手法则”,这种法则只针对有墙壁且出口在墙壁上的迷宫(如果出口在大厅中心的情况就不适用了),只要顺着墙壁走,都能走出去。因为出口和入口的墙壁都是闭合曲线,所以这种“法则”在这类迷宫中是通用。不过“左手法则”的效率太低,只适用于小范围的固定迷宫,而大范围的迷宫用这种算法会耗费大量的时间。未来我也会和大家分享“深度优先”等算法和如何自动生成随机迷宫。

最经典的“左(右)手法则”算法:在一张连通的迷宫图中我们用左右任意一只手一直摸着墙就一定可以走出这个迷宫,也称为绕墙走算法(或摸墙算法),是一种迷宫搜索的初级算法。左手法则的关键点:

1. 走到墙边

2. 监测左边是否有墙壁

3. 监测前面是否有墙壁

4. 左右转向。

下面我们把左手摸墙的走法用流程图表示出来,更加方便让大家理解。

代码分析:

程序以网上找到的一个简单迷宫为背景,迷宫墙壁为黑色。圆球角色Ball走迷宫,Bell铃铛为迷宫出口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数学编程陈老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值