逃不掉的小球-第10届蓝桥杯Scratch国赛真题第1题
[导读]:超平老师计划推出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),即按下空格键,圆圈的大小可以随机变大变小。
二.思路分析
本题的逻辑很简单,无非就是在按下键盘方向键的时候,让小球上下左右移动,具体来说,就是当按下←键的时候,小球向左移动,当按下→键的时候,小球向右移动,当按下↑键的时候,小球向上移动,当按下↓键的时候,小球向下移动。
针对这个需求,只需要设置好角色的方向,重复执行移动即可。但是题目给出了一些限制,重点有两个:
1). 在程序未启动时,按键不能控制小球移动,这就表示我们不能使用事件模块中的“当按下空格键”指令,而应该使用侦测模块中的“按下空格键”指令。
2). 小球只能在圆球范围移动,所以当小球碰到边缘时,应该让小球反弹回来,如何实现反弹,这是有技巧的,稍后会详细解释。
三.编程实现
根据思路分析,我们可以分角色来编写程序:
圆形角色
小球角色
1. 圆形角色
绿旗点击时,圆形角色处于舞台中心位置,默认大小为100。当按下空格键时,圆圈的大小可以随机变大变小,其代码如下:
需要说明的是,在Scratch中设置角色的大小,单位是百分比,100就是指和角色本身的造型大小完全一致。
2. 小球角色
当点击绿旗时,小球位于舞台中心,根据上面的思路分析,本题不能使用事件模块中的“当按下空格键”指令,所以,我们需要重复检测是否按下方向键。
按指定方向移动小球非常简单,重点是如何让小球在碰到圆形边缘时反弹回来。通常有两种方法,第一种方法是将小球角色设置为反方向,移动相同的步数,第二种方法则可以直接在移动步数的基础上,添加一个负号“-”,表示回退,也就是向反方向运动。
很显然,方法2更为简单,这里以按下↑键为例,编写代码如下:
需要注意的是,这里的移动步数不宜过大,如果过大的话,就直接越过圆形边缘了,同时在碰到边缘反弹时,移动的步数和原来移动的步数数值相同。
其它三个按键的处理方式,和这个基本一样,唯一不同的是方向,按下↓键时,将方向设置为180度,按下←键时,将方向设置为-90度,按下→键时,将方向设置为90度,代码如图所示:
在上述代码中,每个“如果...那么”指令中都包含了“如果碰到边缘,就移动-5步”的判断,有些同学觉得这个代码重复了4次,于是将这个代码拿出来,放到最后,如图所示:
这样代码不是更简洁吗?思路上是没有什么问题的,如果你多测试几次,会发现有bug,当同时按下多个方向键的时候,小球就跨越圆圈了。
这是怎么回事呢?其原因其实很简单,假如你同时按下↑和→键,根据这个代码,会先判断是否按下了↑键,于是向上移动了5步,接着又判断是否按下→键,于是向左移动了5步,但是最后只执行了一次后退5步,这就导致小球可能跨过圆圈。
当按下空格键时,小球会回到舞台中心,编写代码如下:
至此,整个作品就创作好了,是时候好好欣赏一下自己的大作了^_^。
四.总结与思考
作为国赛的第一题,相对来说不难,总代码量为40个积木块,涉及到的知识点主要包括:
舞台中心坐标及“移到x,y”指令的使用;
角色大小的含义及设置;
按键侦测及角色碰撞检测;
角色方向的设置;
循环和条件的嵌套用法;
移动10步指令的含义及负数的妙用。
题目不难,但是要做到完全符合题目并不是一件轻松的事情,这需要考生具备较好的编程基础,认真审题,在完成创作后,要反复测试,看是否有bug并进行修复完善。
所以说,编程竞赛从来不只是考察编程知识,真正脱颖而出的考生都具备较强的综合能力和素养。
需要作品素材和源码的,可以联系本人。
逃不掉的小球-第10届蓝桥杯Scratch国赛真题第1题相关推荐
- 捉迷藏之二-第10届蓝桥杯Scratch国赛真题第6题程序2
本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第15 ...
- 捉迷藏之四-第10届蓝桥杯Scratch国赛真题第6题程序4
本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第17 ...
- 捉迷藏之一-第10届蓝桥杯Scratch国赛真题第6题程序1
本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第14 ...
- 小猫打螃蟹-第10届蓝桥杯Scratch省赛真题第2题
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第67讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...
- 击鼓游戏-第10届蓝桥杯Scratch省赛真题第7题
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第62讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...
- 自动驾驶-第10届蓝桥杯Scratch省赛真题第5题
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第64讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...
- 女孩顶球-第10届蓝桥杯Scratch省赛真题第1题
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第68讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...
- 计算游泳时间-第10届蓝桥杯Scratch省赛真题第3题
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第66讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...
- 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第27讲. 第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试.Scrat ...
最新文章
- Win10命令行激活 电脑组装
- 来看看如何在 C# 中使用反射
- 三大新闻机构起诉FBI,FBI与苹果大战续集开幕?
- 自监督学习简介以及在三大领域中现状
- Android Socket编程
- 1.19 String、StringBuffer和StringBuilder类的区别
- linux下调试工具的应用
- 【UML关系(泛化、实现、依赖、关联(聚合,组合))】
- linux控制协程参数,Linux高性能网络:协程系列05-协程实现之原语操作
- vfp mysql教程_VFP基础教程 5.5 编辑框控件(editbox)
- 数字通信原理笔记(一)---概述
- 硬盘 : ATA、ATAPI的含义
- Vue开发环境搭建,Vue.js安装,浏览器辅助工具Vue-devtools
- Typora、Markdown 字体样式
- web和mysql连接并增删改查_Web界面实现数据库增删改查过程
- 如何利用linux分析转录组数据库,对转录组测序数据进行分析以及注释
- CleanMyMac X试用版与正式版区别
- unity 之 Particle 二
- Axure RP9制作汉堡菜单
- 再次出现用户净流失,大失颜面的中国移动推出超低价套餐争取用户