听话的苹果-第11届蓝桥杯Scratch选拔赛真题精选

[导读]:超平老师计划推出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♪(・ω・)ノ。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值