小狗避障

您所在的位置:网站首页 scratch中级篇有点难 小狗避障

小狗避障

2023-12-18 14:51| 来源: 网络整理| 查看: 265

 [导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第139讲。

小狗避障,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组编程第4题,题目要求编程实现小狗避障效果。玩家输入一个5-8之间的数字,在舞台上呈现对应数量的柱子,1秒后小狗水平向右移动,并且依次绕过每根柱子。

先来看看题目的要求吧。

一.题目说明

编程实现:

小狗避障。

具体要求:

1). 点击绿旗,角色、背景如图所示;

2). 舞台下方出现询问框:"输入5-8之间的一个数字"(包含5和8);

3). 如果输入的数字不在5-8之间,询问框说:"请重新输入5-8之间的一个数字";

4). 如果输入的数字在5-8之间,在舞台上呈现对应数量的避障柱子;

5). 等待1秒,小狗水平向右移动,并按照以下要求绕过每根柱子;

要求:从第1根柱子后面绕过,从第2根柱子前面绕过,从第3根柱子后面绕过……以此类推。(可明显看到小狗跑动的过程,且动作连贯没有延迟与卡顿,请以程序演示视频为准);

6). 3秒内小狗到达舞台右边缘,程序结束。

评判标准:

5分:满足"具体要求"中的1);

5分:满足"具体要求"中的2);

10分:满足"具体要求"中的3);

15分:满足"具体要求"中的4);

20分:满足"具体要求"中的5);

5分,满足"具体要求"中的6)。

二.思路分析

本题包含两个角色,分别是小狗和柱子,如图所示:

其中,小狗角色有4个造型,如图:

根据题目描述,可以将作品拆分成3个小模块:

玩家输入数字

克隆柱子

小狗向右移动

其中,玩家输入数字需要使用问答指令,但是要确保输入的数字在5~8之间,如果不在这个范围内,则重新提问,一般的解决方案是使用直到循环。

克隆柱子比较简单,根据玩家输入的数字自左至右依次克隆即可。

小狗向右移动也比较简单,不过这里有一个难点,就是要求小狗从奇数根柱子后面绕过,从偶数根柱子前面绕过。

这就涉及到角色的层次关系,如果将柱子从1开始编号,对于编号为奇数的柱子,要移到前面,编号为偶数的柱子则移到后面。

这里有一个小疑问,是改变小狗的层次关系简单呢,还是改变柱子的层次关系更简单呢?

相对来说,改变柱子的层次关系更为简单,你说是吧。接下来,我们进入具体的编程实现环节。

三.编程实现

根据题目描述和思路分析,我们可以分如下3个步骤来编写程序:

玩家输入数字

克隆柱子

小狗向右移动

1. 玩家输入数字

首先,要明确到底是哪个角色在询问呢,小狗、柱子还是舞台背景?

小狗肯定不行,因为点击绿旗时小狗处于显示状态,柱子和舞台背景都是可以的,相对来说,在柱子角色中询问更为简单。

其次,要注意询问的内容有两句,一句是”输入5-8之间的一个数字“,一句是”请重新输入5-8之间的一个数字“。

如果输入的数字不在5~8之间,则一直要重复询问,切换到柱子角色中,编写代码如下:

同时要注意,角色的初始化不能少,包括隐藏和坐标设置。

2. 克隆柱子

一旦用户输入正确,就要开始克隆柱子了,克隆比较简单,重点是如何给柱子进行编号,从而区分哪个处于奇数位置,哪个处于偶数位置。

相信聪明的你已经想到了,使用变量,全局变量和私有变量都可以。如果是全局变量,就表示柱子的顺序,如果是私有变量,就可以用来表示柱子的编号。

此处,我采取私有变量的方案,在上面的代码块后面,继续编写代码如下:

这里的”_ID“是私有变量,加下划线只是个人习惯,重要的是要勾选”仅适用于当前角色“,如图:

在代码的最后面,增加了一个”广播go“的指令,其作用是告诉小狗可以开始移动了,稍后在第3步编写具体代码。

一旦生成了柱子克隆体,就需要将柱子显示出来,同时根据其ID设置层次关系,对应的代码如下:

判断奇偶数就是看数字能不能被2整除,如果能整除就说明是偶数,否则就是奇数,所以这里用到了余数指令。

3. 小狗向右移动

点击绿旗时,小狗位于舞台左下方,对小狗角色进行初始化设置,切换到小狗角色,编写代码如下:

在接收到”go“广播消息后,开始向右移动,对应的代码如下:

简单说明4点:

1). 题目要求等待1秒小狗才开始移动,所以在接收到广播消息之后,增加了一个”等待1秒“指令;

2). 判断是否到达舞台右边缘,不能直接使用”碰到舞台边缘“指令,这是因为舞台边缘包括上下左右4个边缘,角色的初始位置就位于舞台左边缘;

3). 由于在移动的过程中有连贯动作,也就是切换造型,但是不能切换太快,所以增加了一个”等待0.1秒“指令;

4). 题目要求3秒内到达舞台右边缘,可以通过改变移动速度来实现,比如这里的”将x坐标增加20“,你也可以设置为其它的值;

至此,小狗避障作品就创作好了,看看这只聪明的小狗是如何绕过柱子的吧。

四.总结与思考

本题是中级组编程部分第4题,分数为60分,积木块数量37个左右,涉及到的知识点主要包括:

问答指令;

克隆编程;

私有变量;

外观编程,包括造型切换、显示、隐藏和层次关系设置;

运算指令,包括比较运算、逻辑运算和余数运算;

事件广播机制;

这是中级组的第4题,题目难度一般,完成时间在15分钟左右,难点在于如何实现小狗轮流绕过柱子的效果。

作品代码不多,但是涉及到的知识点不少,这就要求考生具备扎实的编程基础,能够灵活运用各知识点快速创作作品。

留给你一个小小的思考题,题目要求3秒内到达舞台右边缘,如果要精确到刚好3秒,该如何实现呢? 

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要素材和源码的,可以移步至“超平的编程课”gzh,或者私信本人。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3