被圆圈困住的蚂蚁

有没有玩过一个游戏,在地上或者纸上画一个圈,把蚂蚁圈起来,然后看着蚂蚁傻傻地在圈里转圈?蚂蚁不敢走出圆圈,一直在圆圈边缘试探,但却始终走不出这个圈子。很多人好奇为什么一个圈就可以困住蚂蚁,难道蚂蚁也知道不能越过边界?实际上,蚂蚁不敢走出圈子是因为他们的气味被断掉了。

蚂蚁辨别方向不是依靠眼睛,而是依靠气味。当它们爬行时会在地上留下气味,这种气味叫做信息素,它们靠着信息素来辨认回家的方向。但是,如果用含有特别味道的笔在蚂蚁身边画圈,就会影响它们的嗅觉,让它们找不到回家的方向,没有方向自然就不敢乱走了!另外,粉笔中含有滑石粉,也可以防止蚂蚁逃跑。

1.jpg

今天,我们将使用Scratch创作《蚂蚁模拟器》,来模拟蚂蚁是如何靠着信息素回家的。

蚂蚁动起来

打开Scratch编程软件,将准备好的蚂蚁角色素材导入到Scratch中,先让蚂蚁在舞台上运动起来,编写代码如下:

图2

蚂蚁动起来代码

执行这段代码,蚂蚁就会沿着指定方向向前运动,当碰到舞台边缘就回不来了,需要加上“*碰到边缘就反弹*”指令吗?

不用,这一次试试使用其它方法吧,我们做一个让蚂蚁能感知到信息素的传感器吧。

给蚂蚁加上传感器

这里的传感器并不是指生产出来的电子传感器,而是指动物的感觉器,也就是感受光线或是声音等刺激的器官,触觉也是感受触觉的传感器。这里我们使用颜色来表示信息素,所以,可以给小蚂蚁加上感受颜色的传感器。

点击脚本区域左上方的“造型”选项卡,调整好颜色,使用圆形工具在小蚂蚁的前面绘制一个小红点,如图:

图3

这个红点就作为小蚂蚁的传感器。需要注意,默认的蚂蚁造型是位图,可以先将其转换为矢量图,这样便于调整图片。

绘制信息素小路

接下来,我们就给蚂蚁添加一条信息素之路,这个可以使用背景来做,也可以使用角色来做,此处,我们选择使用角色。在角色列表区,点击“绘制”角色按钮,设置填充颜色为蓝色,去掉轮廓,将画笔粗细设置为30左右,运用画笔工具绘制一条曲线,如图所示:

图4

绘制信息素小路

沿着信息素小路来回走动

接下来,我们就可以继续编写蚂蚁的程序,使其沿着信息素小路走动了,在这里,我们假定红色的传感器遇到蓝色的信息素之路就算是找到信息素了,为了完成这个过程,需要使用侦测模块中的“颜色碰到颜色”之路,如图:

图5

颜色碰到颜色指令

点击指令中的颜色部位,会打开颜色设置界面,如图:

图6

颜色设置界面

我们可以在这里设置颜色,也可以使用颜色滴管工具,点击底部的滴管图标,就会自动选中Scratch舞台区域,并且有一个放大镜效果,移动鼠标,找到合适位置的颜色,点击一下,就可以设置好颜色了,如图:

图7

颜色滴管工具选取颜色

如果小蚂蚁的传感器检测碰到了蓝色,就让蚂蚁右转15度,为了保证小蚂蚁能沿着小路一直走,一旦偏离了信息素,就让蚂蚁左转15度,也就是说,小蚂蚁一旦偏离小路,就立刻把它“拉回到”正确的方向,具体代码如下:

图8

沿着信息路左右摇摆前进

这种按照执行的结果来决定下一步的动作的方法叫做反馈控制。沿着线路走的机器人也是这样控制的,通常叫做巡线机器人。另外空调的恒温调节还有汽车的自动巡航都是按照这个原理来实现控制的。

我们可以再添加一个蚂蚁,分别放在线路的两头,点击绿旗之后,先等1秒,再开始移动,如图:

图9

蚂蚁1角色代码

图10

蚂蚁2角色代码

标签: Scratch, Scratch编程, Scratch中国, 少儿编程, Scratch社区, Scratch编程社区, Scratch编程课程, Scratch编程教程