这是一个类似于贪吃蛇的小程序,也是青少儿编程大赛初中组的一道大题,通过程序自动控制方格中的小猫,以最短的路径,一步步移动到随机出现的鱼位置,吃掉鱼,然后鱼又出现在新的位置,如次重复去吃掉。
具体要求:
1). 点击绿旗,瞬间呈现 6 行 8 列的方格铺满整个舞台区域,如图所示;
2). 1 秒后,鱼和小猫出现在随机的两个方格中,如图所示;
3). 然后,每隔 0.5 秒小猫会向上下左右四个方向选择一个方向走一格,并经过最少的方格到达鱼所在方格,如图所示;
4). 小猫到达鱼所在方格后,小猫停下来,鱼消失,1 秒后鱼再次出现在随机的一个方格中,如图所示;
5). 重复执行“具体要求”3)、4)。
思路:
对问题进行拆分,分为以下几个模块来处理
1、克隆6x8方格
2、随机小猫位置
3、随机鱼位置
5、小猫移动吃鱼
难点:
1、随机猫和鱼的位置,可以通过随机数随机行和列,由于方格都是正方形,间距都是相等的,那么就可以通过运算得到所在行列的坐标,假设小猫随机位置是第3行第3列,那么坐标计算如图:
鱼的随机位置也是通过随机数生成行,列,然后计算坐标。
2、猫吃鱼,寻找最短路。如图,只要是在这种情况下,只要在矩形里不管怎么移动,步数都是一样的,也是最短的。
你可以自己画一画,所以我们移动的思路就是,先将他们移动到同一行,然后再移动到同一列,即图中红色箭头的路线。
编程实现:
第一步:添加角色
使用默认小猫角色,再添加一个鱼(fish)角色,并绘制一个方格角色(使用矩形工具,按住shift键,拖动鼠标就可以绘制正方形),如图:
第二步:克隆6x8方格
1、为方格角色编写程序,可以通过程序控制方格到合适的大小(生成网格是自制积木)
2、自制积木“生成网格”(勾选运行时不刷新屏幕),使用克隆生成6行8列的方格,这个在我们的很多教程中都会用到,比如上一节扫雷游戏。
第三步:随机小猫位置,新建两个变量“猫_行”,“猫_列”
由于第一行第一列(即第一个方格)的坐标是(-200,140),那么第0行0列的坐标就是(-258,198),因此可以根据小猫所在的行和列计算出它的坐标
小猫x坐标=-258+猫_行*58
小猫y坐标=198+猫_行*58
最后通过广播消息“显示鱼”,让鱼出现在随机位置
第四步:随机鱼的位置
1、由于鱼要不断地出现在随机位置,为了重复使用这个功能,我们新建一个积木“随机鱼的位置”
2、定义积木,鱼的位置随机跟猫是一样的,通过随即行和列计算出坐标,有一点需要注意下,如果随机出现的鱼跟猫位置重叠,那么要重新改变新的位置,所以增加了一个重复执行直到不碰到猫
3、初始化,将鱼设置到合适的大小,在收到显示鱼的消息后,使用自制积木,让鱼出现在随机位置。
第五步:猫移动,吃鱼
1、自制积木“移动一步”,方便重复使用,控制小猫移动
2、定义积木,小猫移动的思路就是先移动到同一行,再移动到同一列:
3、在小猫随机位置后面继续添加代码,通过重复执行移动一步,让小猫移动,碰到鱼,广播消息“吃掉”
第六步:鱼被吃掉,再重复随机到新位置
选中角色鱼(fish)添加代码,当接收到吃掉消息,隐藏,等待1秒后随机出现在新的位置
程序源码下载:Scratch图形化编程教程:小猫吃鱼(简易贪吃蛇)
本站内容未经许可,禁止任何网站及个人进行转载。







