电灯开关-第12届蓝桥杯Scratch省赛2真题第1题

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

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

电灯开关,本题是第12届蓝桥杯Scratch第一次省赛真题中级组编程第1题。题目要求考生编程模拟日常生活中的电灯开关效果,通过开关键控制房间灯光的打开与关闭。

先来看看题目的要求吧。

一.题目说明

编程实现:

电灯开关,通过开关键控制房间灯光的打开与关闭(开关为兔子造型)。

具体要求:

1). 点击绿旗,角色与背景如下图所示呈现在对应位置;

2). 按下开关键房间灯光熄灭;

3). 再次按下开关键房间灯光亮起。

评判标准:

  • 10分:满足要求1);

  • 15分:满足要求2);

  • 15分:满足要求3)。

二.思路分析

本作品只有1个角色,就是小兔子,如图所示:

本题的目标比较简单,就是点击小兔子角色,控制舞台背景的变化,这里的关键是如何让舞台变成全黑。

通常有两种解决方案,第一种方案是绘制一个黑色背景造型,然后在两个背景之间进行切换即可;第二种方案则是使用外观模块中的亮度特效指令,如图所示:

亮度是一个物理学概念,表示色彩的明暗程度。在Scratch中,我们可以通过亮度来设置舞台背景或者角色的明暗程度,它的取值范围是-100到100,其中-100表示全黑,100则表示全白,默认值是0。

在这里,我们选择第二种方案,也就是在点击兔子角色时,改变舞台的亮度。如果关闭开关,则将亮度设置为-100,如果打开开关,则清除图形特效,让亮度恢复为默认值0。

此时,我们有面临一个新的问题,即舞台背景如何知道用户按下了开关呢?常见的解决方案是使用广播机制,当点击兔子角色时,就给舞台背景发送一个广播消息。

当然,我们还有一个更好的解决方案,这就是使用状态机的编程思想,先创建一个变量用来表示开关的状态,当点击兔子角色时,修改状态即可。对于舞台背景而言,只需要去检测状态,并根据不同的状态来设置舞台背景。

三.编程实现

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

  • 小兔子角色

  • 舞台背景

1). 小兔子角色

先创建好变量”开关“,当绿旗点击时,设置小兔子角色的位置,并将开关的值设置为1,表示打开状态,代码如下:

当点击兔子角色时,修改变量的值,如果开关为1,则设置为0,如开关为0,则设置为1,代码如下:

如此一来,当点击小兔子角色时,就可以来回切换开关的状态了。

2). 舞台背景

在Scratch编程中,可以把舞台看作是一个特殊的角色,也是可以编写代码的。但是舞台背景比较特殊,它是不能动的,所以在舞台背景中,不能使用运动类积木,如图:

对于舞台背景来说,只需要重复检测开关状态,并根据不同状态来设置亮度特效即可,切换到舞台背景,编写代码如下:

当开关打开时,我们使用了”清除图形特效“指令,该指令的作用是将所有的特效都清除掉,恢复为默认值,所以亮度值就变成了0,从而点亮舞台。当然,你也可以使用”将亮度特效设定为0“指令,效果完全一样。

四.总结与思考

本题比较简单,积木块数量在17个左右,分值为40,涉及到的知识点主要包括:

  • 外观特效设置,重点是亮度特效的作用及编程实现;

  • 变量的使用;

  • 角色点击事件;

  • 双分支条件语句,即”如果...那么...否则“指令的使用;

  • 状态机的编程思想。 

作为省赛的第一题,非常的简单,算是一道开胃菜,需要重点关注的是状态机的编程思想,这里的开关就是一个简单的状态机。状态机是一个对真实世界的抽象,而且是逻辑严谨的数学抽象,可以应用到各个层面上,例如硬件设计,编译器设计,以及编程中的业务逻辑。

请你思考一个问题,对于背景全黑的效果,使用亮度特效来实现的好处是什么?欢迎和我交流。

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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值