足球直播_足球免费在线高清直播_足球视频在线观看无插件-24直播网

但是要做到完全符合题目并不是一件轻松的事情

  本文转自于”超平的编程课“公众号,更多教程,可移步至公众号。

  [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第22讲。

  第10届蓝桥杯青少年组国赛于2019年5月25日举行,形式为线下考试,考生自带电脑。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

  逃不掉的小球,本题是第10届蓝桥杯Scratch国赛真题编程第1题,题目要求考生编程实现使用键盘控制小球在圆形范围内运动,同时确保小球不能越过圆形边缘。

  先来看看题目的要求吧。

  准备工作:

  添加1个“Ball”小球角色,绘制1个轮廓较粗的红色空心圆。

  编程实现:

  键盘控制小球运动,小球不能越过圆形边缘。

  具体要求:1). 圆形和小球都放置在舞台中间(如图);

  2). 点击绿旗,使用上、下、左、右按键可以控制小球上下左右移动,但在程序未运行时,按下按键则应该不能控制小球移动;

  3). 小球只能在其圆形范围内移动(允许触碰到边缘,但不能越过边缘);

  4). 当按下空格键时,小球要回到舞台中间,圆形则必须在初始大小的基础上随机变大或者变小;

  评判标准:10分:符合具体要求1),即导入的小球和绘制的圆圈在舞台中间;20分:在10分基础上,符合具体要求2),即不点击绿旗,不能用键盘控制小球;点击绿旗,可以控制小球;40分:在20分基础上,符合具体要求3),即小球只能在圆圈内运动;50分:在40分基础上,符合具体要求4),即按下空格键,圆圈的大小可以随机变大变小。

  在编程之前,先来看看作品的完整效果吧:逃不掉的小球-第10届蓝桥杯真题https://www.zhihu.com/video/1535916763175137281

  本题的逻辑很简单,无非就是在按下键盘方向键的时候,让小球上下左右移动,具体来说,就是当按下←键的时候,小球向左移动,当按下→键的时候,小球向右移动,当按下↑键的时候,小球向上移动,当按下↓键的时候,小球向下移动。

  针对这个需求,只需要设置好角色的方向,重复执行移动即可。但是题目给出了一些限制,重点有两个:1). 在程序未启动时,按键不能控制小球移动,这就表示我们不能使用事件模块中的“当按下空格键”指令,而应该使用侦测模块中的“按下空格键”指令。2). 小球只能在圆球范围移动,所以当小球碰到边缘时,应该让小球反弹回来,如何实现反弹,这是有技巧的,稍后会详细解释。

  根据思路分析,我们可以分角色来编写程序:圆形角色小球角色

  1. 圆形角色

  绿旗点击时,圆形角色处于舞台中心位置,默认大小为100。当按下空格键时,圆圈的大小可以随机变大变小,其代码如下:圆形角色随机大小

  需要说明的是,在Scratch中设置角色的大小,单位是百分比,100就是指和角色本身的造型大小完全一致。

  2. 小球角色

  当点击绿旗时,小球位于舞台中心,根据上面的思路分析,本题不能使用事件模块中的“当按下空格键”指令,所以,我们需要重复检测是否按下方向键。

  按指定方向移动小球非常简单,重点是如何让小球在碰到圆形边缘时反弹回来。通常有两种方法,第一种方法是将小球角色设置为反方向,移动相同的步数,第二种方法则可以直接在移动步数的基础上,添加一个负号“-”,表示回退,也就是向反方向运动。

  很显然,方法2更为简单,这里以按下↑键为例,编写代码如下:按上键的代码

  需要注意的是,这里的移动步数不宜过大,如果过大的话,就直接越过圆形边缘了,同时在碰到边缘反弹时,移动的步数和原来移动的步数数值相同。

  其它三个按键的处理方式,和这个基本一样,唯一不同的是方向,按下↓键时,将方向设置为180度,按下←键时,将方向设置为-90度,按下→键时,将方向设置为90度,代码如图所示:完整代码

  在上述代码中,每个“如果...那么”指令中都包含了“如果碰到边缘,就移动-5步”的判断,有些同学觉得这个代码重复了4次,于是将这个代码拿出来,放到最后,如图所示:有bug的代码

  这样代码不是更简洁吗?思路上是没有什么问题的,如果你多测试几次,会发现有bug,当同时按下多个方向键的时候,小球就跨越圆圈了。

  这是怎么回事呢?其原因其实很简单,假如你同时按下↑和→键,根据这个代码,会先判断是否按下了↑键,于是向上移动了5步,接着又判断是否按下→键,于是向左移动了5步,但是最后只执行了一次后退5步,这就导致小球可能跨过圆圈。

  当按下空格键时,小球会回到舞台中心,编写代码如下:小球回到舞台中心

  至此,整个作品就创作好了,是时候好好欣赏一下自己的大作了^_^。

  作为国赛的第一题,相对来说不难,总代码量为40个积木块,涉及到的知识点主要包括:舞台中心坐标及“移到x,y”指令的使用;角色大小的含义及设置;按键侦测及角色碰撞检测;角色方向的设置;循环和条件的嵌套用法;移动10步指令的含义及负数的妙用。

  题目不难,但是要做到完全符合题目并不是一件轻松的事情,这需要考生具备较好的编程基础,认真审题,在完成创作后,要反复测试,看是否有bug并进行修复完善。

  所以说,编程竞赛从来不只是考察编程知识,真正脱颖而出的考生都具备较强的综合能力和素养。

  如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ

  需要素材和源码的,可以联系作者,或者移步到“超平的编程课”公众号。

但是要做到完全符合题目并不是一件轻松的事情

但是要做到完全符合题目并不是一件轻松的事情

分享:
扫描分享到社交APP
发表列表
请登录后评论...
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~