[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第96讲。
蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。
第11届蓝桥杯青少年组第4次选拔赛于2019年12月15日举行,形式为线下考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。
听话的苹果,本题是2019年12月15日举行的第11届蓝桥杯Scratch地区选拔赛真题编程第4题,题目要求编程创作听话的苹果游戏,在玩家输入指令后,苹果会按照指令进行上下左右移动。
先来看看题目的要求吧。
一.题目说明
编程实现:
1). 本程序只有一个苹果角色,并且舞台为空白背景。如图:
2). 先用边长为60的正方形填满整个舞台(用程序完成,不是使用舞台背景绘制);
3). 画完后,苹果回到舞台中心,然后询问:“输入指令(上下左右)”;
4). 在输入框输入指令(指令可以是1个或多个),输入完毕后按回车键提交,苹果会按照指令的方向依次移动,每次移动都要移到下一个交点上,瞬移,每走完一次要等待1秒,如图所示:
5). 苹果按指令走完整个路程后,会发出下一次询问,输入并提交后可再次移动;
6). 需要注意的是:如果遇到“上下左右”以外的其它内容,苹果不移动,说“无效”(1秒);
例如:输入“下6左A”,则苹果向下移动一格等待1秒,然后不移动同时说“无效”(1秒),然后向左移动一格等待1秒,然后说“无效”(1秒)原地静止。
7). 苹果不能超出屏幕边界,否则会说“超出范围,游戏停止!”,然后程序结束。
例如:程序一开始就输入:“上上上上”则苹果会依次向上移动3格,在移动第4次的时候,苹果移到边界外,说“超出范围,游戏停止!”1秒,然后程序结束。
将程序保存在桌面,命名为“4.sb2”。
评判标准:
-
30分:运行程序,苹果先画出如图所示的网格,然后回到舞台中心,屏幕下方出现指令输入提示框;
-
30分:输入指令后,苹果能做出相应的处理。从第一位开始依次判断:正确则移动,错误则提示“无效”且原地静止;
-
40分:当超出边界,出现文字提示“超出范围,游戏停止”并结束游戏。
二.思路分析
本题只有1个苹果角色,来自于Scratch自带的角色库。需要完成的功能主要有两个,一是绘制网格,二是让苹果按指令移动。
绘制网格需要用到画笔模块,每一个网格都是60*60的小正方形,Scratch舞台大小为480*360,所以在水平方向上有8个小正方形,垂直方向上有6个小正方形。绘制方法有两种,一是逐个绘制小正方形,二是直接绘制直线,水平方向画7条直线,垂直方向画5条直线即可。
让苹果按指令移动比较简单,重点是如何从用户输入的回答中取出指令,这需要使用字符串运算结合循环逐个取出每一个指令。
由于这里只有一个角色,如果把所有的代码都写在绿旗下面,代码会显得比较长,我们可以使用自制积木对程序进行拆分,从而让代码结构更加清晰。
三.编程实现
根据题目描述和思路分析,我们可以分两步来编写程序:
-
绘制网格
-
苹果按指令移动
1. 绘制网格
根据思路分析,我们使用自制积木来绘制网格,绘制的思路也比较简单,先绘制5条水平方向上的直线,再绘制7条垂直方向上的直线,代码如图所示:
需要注意的是落笔和抬笔的时机,确保没有多余的线段。如果想瞬间绘制好网格,可以在定义自制积木的时候勾选”运行时不刷新屏幕“,如图:
然后在绿旗指令中使用自制积木,如图所示:
执行程序,绘制的网格效果如下:
2. 苹果按指令移动
接下来, 苹果角色开始询问了,然后等待玩家输入指令,当玩家回答之后,我们就可以使用循环逐个取出每个指令,这部分代码如下:
简单说明两点:
1). 角色到底往哪个方向移动,这里使用了自制积木,稍后再介绍;
2). 要正确的理解”苹果不能超出屏幕边界“的意思,很多同学首先会想到直接使用”碰到舞台边缘“来进行判断,请注意第7条中的描述,当输入“上上上上”指令,苹果会依次向上移动3格,在移动第4次的时候,苹果移到边界外,说“超出范围,游戏停止!”1秒,然后程序结束。这说明苹果可以碰到舞台边缘,只是不能移动到舞台外面去,所以这里判断的是x和y有没有超出舞台边界。
“上下左右移动”的自制积木定义如下:
这里使用了条件嵌套结构,当指令为左、右、上、下时,就分别向对应方向移动60步,否则就停在原地不动,并提示“无效”。
当前的代码只能处理一次输入,如果要继续下一次询问和移动,可以加上重复执行,代码如下:
至此,整个作品就创作完成了,你可以把玩一下,看看苹果是不是真的听话。
四.总结与思考
本题难度系数为7,积木块数量70个左右 ,涉及到的知识点主要包括:
-
Scratch绘制图形;
-
自制积木的使用;
-
Scratch问答指令;
-
使用循环结合字符串运算遍历 ;
-
运算符的运用,包括比较运算、字符串运算和逻辑运算;
-
条件语句的多层嵌套。
本题难度较大,综合性较强,涉及到的知识点比较多,这里的难点是字符串的遍历操作,这需要结合循环、变量、字符串运算等知识点。要在规定的时间里完成创作,需要考生具备深厚的编程功底。
如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。