Scratch第三十一讲:自动走迷宫

网友投稿 2019-11-04 15:52

想了解编程技巧,就请点击上面蓝字:跟我学Scratch编程,关注CC哥


前一段时间大家在讨论如何如何自动走迷宫的小程序,CC哥也抽时间做了一个,当然细节不是很完善,但是可以学习一下思路。

https://cdn.china-scratch.com/timg/191106/1552306059-0.gif

先看一下例子,发现没有,实际上这就是走迷宫的最经典的做法,每逢分叉路口向左转的走法。不过我们好好模拟一下这种走法的真实情况是什么:

1:首先这是个黑暗迷宫,你看不见路,也看不见地形,只能摸着墙去走。

2:第二因为是黑暗迷宫,所以你也没法记住曾经走过的路,所以你只能碰到路口,继续摸着墙往左转。

那我们就假设自己是盲人那么这个迷宫该怎么走:

1:第一步是首先走到墙边,摸到墙再说。

2:然后每走一步都要试探一下自己左边还有没有墙,如果没有就赶紧左转,然后再看摸到墙没有,摸到了还要摸一下前面有没有墙,没有就继续往前走。如果前面有墙就沿着墙右转。

(有些小朋友做法是通过给走迷宫的角色加一个小辫子始终接触在墙上,这也是一种做法,模拟手一直摸着墙,不过显示效果不那么好看)

我们来看看程序具体怎么写的:

https://cdn.china-scratch.com/timg/191106/1552302621-1.jpg

CC哥把迷宫单独做成了角色。这样碰撞检测起来简单些,当然也可以把迷宫作为背景,然后去用颜色检测来判断。各自的习惯吧。

如何判断到了出口,我们需要有一个出口的标志,只要碰到这个标志就算出了迷宫,CC哥简单的用红五角星代替了。

大家看主程序部分:

https://cdn.china-scratch.com/timg/191106/1552303395-2.jpg

主程序很简单,CC哥通过自定义命令积木的做法,让程序看上去非常容易懂。主程序就是刚才讲得,先检查左边有没有墙,有墙沿着墙走,没墙就先走到墙边。那具体大家来看几个自定义的命令积木:

先检查左边有没有墙,这个碰撞检测,之前的讲座里都有,大家可以翻看一下CC哥之前的讲座。

https://cdn.china-scratch.com/timg/191106/1552311V1-3.jpg

如果有墙,就沿着墙走。这个关键是每走一步都需要做一次检测。也就是左转走一步看看有没有碰到墙,碰到了就退回,同时转回身来。

https://cdn.china-scratch.com/timg/191106/1552313F2-4.jpg

这里面关键是每走一步不光要判断左边有没有墙,还要判断前面有没有墙,如果前面有墙了,那左边有墙,前面有墙,就必须沿着墙向右转继续走。所以这里面又嵌套了另一个自定义的积木,检测前方是否有墙。

https://cdn.china-scratch.com/timg/191106/1552314220-5.jpg

如果刚开始的时候不在墙边,就要先走到墙边啦。

https://cdn.china-scratch.com/timg/191106/1552312308-6.jpg

整个游戏大概就是这样了。

当然走迷宫还会有更多的问题,比如走迷宫的角色不是规则怎么办?那么在转角的过程中就会碰到问题,需要注意解决。迷宫的地图不规则和迷宫颜色是变化的怎么办?还有如果想让角色记住走过的迷宫路径怎么办?那就需要把整个迷宫做成网格化。这些都是可以进一步去发挥的。看大家怎么做了,都可以尝试一下。

https://cdn.china-scratch.com/timg/191106/1552315I2-7.jpg

https://cdn.china-scratch.com/timg/191106/1552315591-8.jpg

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com