智能钢琴-第12届蓝桥杯Scratch省赛1真题第4题

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

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

智能钢琴,本题是第12届蓝桥杯Scratch第一次省赛真题初级组编程第4题。题目要求考生编程创作一个智能钢琴作品,博士汪的智能钢琴,不仅能弹奏出美妙的音符,还能播放之前演奏的曲子。

先来看看题目的要求吧。

一.题目说明

编程实现:

博士汪发明了一个智能的钢琴,不仅能弹奏出美妙的音符,还能播放之前演奏的曲子。

具体要求:

1). 呈现角色;

2). 琴键上的1 ~ 7,对应do、re、mi、fa、sol、la、xi,7个音符,用鼠标点击1 ~ 7对应琴键即可发出对应音符的声音;

3). 按下空格键,完整的播放出刚才弹出的所有音符。

评判标准:

  • 10分:满足要求1);

  • 30分:满足要求2);

  • 30分:满足要求3)。

     

二.思路分析

本作品一共有8个角色,分别是钢琴和7个按键,如图所示:

对于每个按键来说,使用鼠标点击时,分别播放对应音符的声音,这需要用到Scratch扩展模块中的音乐模块,如图:

在音乐模块中,有一个演奏音符的指令,如图:

这里有8个按键,自左至右分别是do、re、mi、fa、sol、la、xi、do。需要播放哪个音符,选择对应按键即可。

其次,这是一架智能钢琴,当按下空格键时可以播放刚才弹出的所有音符,这就要求我们的钢琴具备记忆功能,就如同我们人类一样。

换句话说,每次按下的音符需要保存起来,这不正是列表的强项吗,使用列表将每次按下的音符保存起来,按空格键时,依次从列表中取出数据逐个播放即可。

三.编程实现

根据题目描述及思路分析,我们可以分三步来编写程序:

  • 添加音乐模块

  • 按键播放音符

  • 重播所有音符

1). 添加音乐模块

作为扩展模块,默认情况下,音乐模块是不显示的,需要先添加才可以使用,点击指令区域左侧的添加按钮,如下:

在扩展界面中,一共有11种扩展模块,其中第一个就是音乐模块,点击即可,如图:

添加好音乐模块,就可以使用相关指令,来创作音乐作品了。

2). 按键播放音符

整个过程中,都需要使用列表,先来创建一个名为”音符“的列表,如图:

再来看看按键1的实现,对于按键1来说,首先需要设置好它的位置。其次,当点击角色的时候,开始播放do音符了,同时还需要将该音符对应的数字60保存到列表中,代码如下:

注意,对于音符数字,只需要选择对应的键即可,而这里的0.25拍,表示播放音符的时间,由于题目没有相应的要求,可以直接使用默认值,当然也可以设置为其它的值,比如0.5、1等。

其它6个按键的代码,写法基本相同,这里就不再列出了。

2). 重播所有音符

我们可以将重播音符的代码写在钢琴角色中,绿旗点击时,需要将列表清空。当按下空格键时,使用循环从列表中逐个取出音符数字并播放,当循环结束,也就是播放完成之后,将列表清空。

切换到钢琴角色,编写代码如下:

此处使用了计数循环,这是在Scratch中遍历列表的经典用法,一般都需要借助计数器。这里变量i就是一个计数器,从第一项开始,每取出一项数据,就将i增加1,列表有多少项,就重复多少次。

当所有音符播放完之后,需要将列表清空,这样就可以确保下次按键时,重新开始记录按下的音符。

四.总结与思考

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

  • 添加扩展模块;

  • 使用演奏音符指令播放音符;

  • 列表的基本使用,包括清空、插入和获取数据项;

  • 事件编程,包括点击事件和按键事件;

  • 使用计数循环遍历列表。 

本题难度一般,重点考察对列表的理解以及列表的基本使用,没有复杂的逻辑。最大的亮点是将音乐和编程结合,让编程变得更加有趣,同时也体现了编程的强大和魅力。

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值