打砖块游戏-第12届蓝桥杯Scratch省赛1真题第5题

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

第12届蓝桥杯青少年组省赛分两次进行,这是2020年10月19日举行的第一次省赛考试初级组,形式为在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

打砖块游戏,本题是第12届蓝桥杯Scratch第一次省赛真题初级组编程第5题,这是最后一题。题目要求考生编程创作一个打砖块游戏,砖块的初始生命值为1 - 5,砖块被打击一次,生命值减1,生命值为0的时砖块消失。

先来看看题目的要求吧。

一.题目说明

编程实现:

打砖块游戏,砖块的初始生命值为:1 – 5,砖块被打击一次,生命值减1,生命值为0的时砖块消失。

具体要求:

1). 点击绿旗舞台呈现效果(27个砖块如图分布,且砖块造型随机显示);

2). 小猫能不停地发射小球(间隔0.1秒),小球面向鼠标指针的方向发射,且小球碰到边缘反弹;

3). 小球打到砖块时小球消失,同时砖块的生命值减1,呈现与生命值对应的造型;

4). 砖块的生命值为0时,消失;

5). 所有砖块消失,游戏结束。

评判标准:

  • 20分:满足要求1);

  • 20分:满足要求2);

  • 20分:满足要求3);

  • 20分:满足要求4);

  • 20分:满足要求5)。

二.思路分析

本作品一共有3个角色,分别是小猫、小球和砖块,如图所示:

其中小猫角色只需要显示在舞台左下角即可。不停地发射小球,意味着舞台上会出现大量的小球,所以需要使用克隆,然后控制克隆体的运动即可。

本题的重点是砖块角色,首先需要在舞台上方克隆出27个砖块,分3排摆放,这可以使用嵌套循环来实现。其次,每个克隆体砖块都有不同的生命值,并显示不同的造型,这需要使用私有变量。

 

三.编程实现

根据题目描述及思路分析,我们可以按角色逐个编写程序:

  • 小猫角色

  • 小球角色

  • 砖块角色

1). 小猫角色

小猫角色最简单,只需要设置好位置即可,代码如图所示:

2). 小球角色

小球是从小猫的手上发射出去的,需要先设置好小球角色的位置,然后每隔0.1秒克隆一个小球,代码如下:

由于小球本体是不需要参与发射的,因此将本体隐藏起来。接下来就需要控制克隆体了,克隆体沿着鼠标的方向移动,如果碰到舞台边缘就反弹,如果碰到砖块则删除克隆体,代码也比较简单,如下:

当开关打开时,需要注意的是,“面向鼠标指针”指令,要放在循环外面,如果放在循环里面,则小球时刻面向鼠标移动,这不是我们要的效果。

2). 砖块角色

根据前面的分析,每个砖块克隆体都有自己的生命值,需要使用私有变量,创建私有变量“_生命值”如图所示:

必须要勾选“仅适用于当前角色”选项,变量名前面加了一个下划线,这是一个良好的编程习惯,让自己和别人一看到这个变量,就知道是私有变量。

同时还需要创建一个变量用来表示砖块的数量,其初始值为27。接下来,我们就可以克隆砖块了,先上代码:

这里使用了嵌套循环,其中内层循环用于克隆每一排的9个砖块,由于它们都是从左到右排列,所以,每次克隆之前,需要将x设置为-200,然后循环9次,每克隆1个,将x坐标增加50,向右移动一点。外层循环则表示要克隆3排,因此每克隆完一排,就将y坐标增加-40,向下移动一点。

在克隆砖块之前,每次都需要设置私有变量”_生命值“的值,基于克隆体的特性,每个克隆体就拥有自己的生命值,并且互不相干。

有了克隆体砖块,就可以根据自己的生命值来显示不同的造型了,砖块角色有5个造型,如图:

接下来就需要检测是否碰到小球了,如果碰到小球,则将生命值减1,如果生命值减到0,则需要删除当前克隆体,并将砖块数量减1。同时还需要判断砖块数量是否减到0,如果为0,则停止全部脚本,编写代码如下:

在删除克隆体之前,增加了一个”等待0.01秒“指令,其作用是确保在删除自己之前,让小球角色能够检测是否碰到砖块。如果没有等待0.01秒,一旦砖块角色的删除此克隆体代码比小球角色检测碰撞代码先执行,那么小球就不会消失,从而出现小bug,这就是Scratch中经典的双克隆体碰撞问题。

需要注意的是, 这里的如果...那么指令嵌套了3层,你也可以不使用嵌套的写法,但是这是判断次数最少的写法,也是最效率最高的写法。

四.总结与思考

本题中等难度,难度系数为4,积木块数量在47个左右,分值为100,涉及到的知识点主要包括:

  • Scratch克隆,包括克隆自己、当作为克隆体启动时和删除此克隆体3大指令;

  • 克隆技巧,使用双重循环克隆多行角色;

  • 私有变量,通常和克隆体结合使用;

  • 双克隆体碰撞问题的特点及解决方案;

  • 循环和条件的多层嵌套。 

很显然,本题的考察重点是Scratch克隆,不管题目怎么变,始终记住一点,克隆体在克隆的那一刻,和本体的特征一模一样,包括造型、大小、坐标、变量的值等。正所谓,万变不离其宗,只要记住这一原则,如何控制每个克隆体的位置,如何为克隆体设置私有变量,都变得很简单。

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

 

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
蓝桥杯scratch省赛真题是指蓝桥杯编程大赛中使用Scratch编程语言进行的省级比赛的问。具体的目会根据每年的比赛而有所不同,以下是一个例子: 目要求创建一个游戏,模拟猴子爬楼梯的场景。猴子每次可以爬1到3级的楼梯,目标是爬到楼梯的最顶层。玩家可以通过按键来让猴子爬楼梯,同时需要显示猴子当前所在的楼梯层以及已经爬过的楼梯量。 首先,我们需要使用Scratch中的精灵功能来创建一个猴子的角色,可以自定义猴子的造型和动作。接下来,我们需要创建一个楼梯场景,可以使用Scratch中的背景功能来绘制楼梯。可以使用简单的图形表示楼梯,比如长方形。 之后,我们需要添加按键事件,让玩家输入按键来控制猴子的爬楼梯动作。可以使用Scratch中的事件功能来实现按键事件的触发。当玩家按下某个按键时,猴子开始向上爬楼梯。可以使用Scratch中的运动功能来控制猴子的位置,让其向上移动相应的楼梯层。 同时,我们需要计算猴子当前所在的楼梯层和已经爬过的楼梯量。可以使用Scratch中的变量功能来记录这些信息。当猴子爬上一级楼梯时,楼梯层加一,已经爬过的楼梯量也加一。可以使用Scratch中的运算功能来实现变量的加法操作。 最后,我们需要添加判断条件,当猴子爬到楼梯的最顶层时游戏结束。可以使用Scratch中的控制功能来实现判断条件。当猴子的位置达到最顶层时,显示游戏结束的提示信息,并停止猴子的爬楼梯动作。 通过以上步骤,我们可以完成蓝桥杯scratch省赛真题中的猴子爬楼梯游戏。这个例子中只是其中的一个目,实际比赛中的问会更加复杂和多样化。但无论目怎样,我们都可以通过使用Scratch的各种功能和编程思维,去解决这些问

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值