数苹果-第12届蓝桥杯Scratch选拔赛真题精选

news2024/11/24 5:01:02

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

蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。

第12届蓝桥杯青少年组第1次选拔赛于2020年8月23日举行,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

数苹果,本题是2020年8月23日举行的第12届蓝桥杯Scratch选拔赛真题编程第3题,初级组和中级组都有此题,题目要求编程创作数苹果作品,苹果树上会随机出现1-10个苹果,小猫询问树上一共有几个苹果,输入数字回答后,小猫可以判断对错。

先来看看题目的要求吧。

一.题目说明

编程实现:

数苹果:苹果树上会随机出现1-10个苹果,小猫询问树上一共有几个苹果,输入数字回答后,小猫可以判断对错。

具体要求:

1). 运行程序,出现下图所示的角色与背景;

2). 按下空格键,苹果树上会随机出现1-10个苹果,小猫会问一共有几个苹果且屏幕下边缘出现询问框;

3). 在询问框中输入正确的苹果个数,小猫会说:“正确”1秒,如输入错误的苹果个数,小猫会说:“错误”1秒;

4). 之后苹果树上再次随机出现1-10个苹果,小猫会接着询问有几个苹果。

评判标准:

  • 10分:运行程序,苹果树上随机出现1-10个苹果,且小猫询问:树上一共有多少个苹果(苹果不能重叠);

  • 10分:在询问框中输入正确的苹果个数,小猫会说:“正确”1秒,如输入错误的苹果个数,小猫会说:“错误”1秒;

  • 10分:之后苹果树上再次随机出现1-10个苹果,小猫会接着询问有几个苹果。

二.思路分析

本题包含两个角色,分别是小猫和苹果,如图所示:

当按下空格键时,树上随机出现1-10个苹果,肯定需要使用克隆,由于后续小猫要判断玩家输入的数量是否正确,因此苹果的数量可以用变量保存起来,苹果出现的位置是随机的,但是要注意随机数的范围。

苹果出现之后,小猫才开始询问,等待玩家回答完之后,再次出现苹果,程序在两个角色之间来回切换,如何确保各个流程的执行顺序呢,这需要用到事件广播机制。

因此,随机数、变量、克隆和事件广播是创作本作品的核心知识点。

 

三.编程实现

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

  • 准备工作

  • 克隆苹果

  • 小猫判断数量是否正确

  • 再次出现苹果

  • 代码优化

1. 准备工作

使用Scratch自带的背景库和素材库,分别添加好舞台背景和苹果角色,将默认的小猫角色拖到舞台的左下角,切换到小猫角色,编写代码如下:

有了这两行代码,就可以确保每次点击绿旗时,小猫都可以回到正确的位置。

2. 克隆苹果

选中苹果角色,绿旗点击的时候,是没有苹果的,因此,需要将苹果角色隐藏起来,编写代码如下:

当按下空格键时,要随机出现1~10个苹果,这个可以通过克隆来实现,同时需要使用变量保存苹果的数量,对应的代码如下:

克隆完所有的苹果之后,就轮到小猫提问了,因此这里发送了一个广播消息,需要注意,广播只需要发一次就可以了,所以不能在当“作为克隆体启动时”指令下下面发送广播消息。

对于苹果克隆体,需要设置好其位置,代码如下:

苹果要出现在树上,也就是舞台左上方,x坐标的范围为-180到0,y的范围为100到150,当然你也可以扩大或缩小范围。注意,这里使用了“将x坐标设为”和“将y坐标设为”两个指令,它和直接使用“移到x,y”指令的效果是一样的。

3. 小猫判断数量是否正确

小猫角色在接收到“提问”广播消息后,就开始询问并等待玩家输入数字,然后判断是否正确,切换到小猫角色,编写代码如下:

判断的逻辑非常简单,回答等于苹果个数,则说正确,否则说错误,不管是正确还是错误,会重新随机出现1-10个苹果,因此这里发送了一个“再来一次”的广播消息。

4. 再次出现苹果

苹果角色在接收“再来一次”广播消息之后,需要做两件事情,一是删除原来的苹果克隆体,二是重新生成克隆体,我们可以编写如下代码:

由于“删除此克隆体”指令是一个尾指令(所谓尾指令是指它只能作为最后一个指令,后面不能再接任何其他指令了),所以,这里使用了两个独立的代码块,其中上面的代码块用于删除所有的苹果克隆体,下面的代码块则用于重新生成新的克隆体。

这两个代码块都是在接收到“再来一次”广播消息时就立刻执行的,那到底是谁先执行,谁后执行呢?

如果上面的删除此克隆体后执行,那岂不是把新生成的克隆体也一并都删除了么。为确保我们先执行删除指令,然后再删除,因此在下面的代码块中,添加了一个等待0.5秒的指令,这个小技巧你可要学会哦 。

5. 代码优化

我们再回头看一下苹果角色的代码,其中有两个代码段,一个是按下空格键代码块,一个是当接收到“再来一次”广播消息代码块,如图所示:

有什么问题吗?相信聪明的你已经发现了,这两个代码块中的核心代码,也就是随机生成1~10个苹果克隆体的代码是一模一样的,针对这种情形,我们有什么办法可以让代码变得更简洁吗?

技巧有两个,第一个技巧就是使用自制积木,第二个技巧则是使用事件广播机制。

我们先来看第一个技巧,使用自制积木,我们可以将随机生成1~10个苹果克隆体的代码做出自制积木,如图所示:

然后在两个代码块中,都使用这个自制积木,如图所示:

第二个技巧则是使用事件广播机制,我们可以在两个不同的时刻,给苹果角色自己发广播,即在按下空格键和当接收到“再来一次”广播线消息时,发送一个“随机生成1~10个苹果”广播消息,如图:

然后在接收到“随机生成1~10个苹果”这一广播时克隆苹果即可,如图所示:

如此一来,我们的代码就变得更加简洁了,你学会了吗?

四.总结与思考

本题难度系数为2,积木块数量35个左右 ,涉及到的知识点主要包括:

  • 设置角色位置,包括指定位置和随机位置;

  • Scratch克隆,重点是如何先删除克隆体再生成新的克隆体

  • Scratch问答,包括询问并等待和回答两个指令;

  • 事件广播机制;

  • 使用自制积木或事件广播来优化代码。

本题相对比较简单,重点是如何对代码进行优化,提高代码的重用性。编程最高的境界就是使用最少的代码实现指定功能,有了这样的目标,你就会不断的探索学习,不断的摸索更好的算法和编程技巧,从而写出让自己满意的代码。

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

需要素材和源码的,可以练习作者,或者移步至同名wx号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Android】Fragment使用

使用Fragment 我们可以把页面结构划分成几块,每块使用一个Fragment来管理。这样我们可以更加方便的在运行过程中动态地更新Activity中的用户界面,日后迭代更新、维护也是更加方便。 Fragment并不能单独使用,他需要嵌套在Activity 中使用&…

Redis最佳实践(上)

引言 尽管 redis 是一款非常优秀的 NoSQL 数据库,但更重要的是,作为使用者我们应该学会在不同的场景中如何更好的使用它,更大的发挥它的价值。主要可以从这四个方面进行优化:Redis键值设计、批处理优化、服务端优化、集群配置优化…

某些设置由你的组织来管理

今天莫名其妙Windows更新出现:*某些设置由你的组织来管理 我们来看看如何恢复吧。 根据上面的图片我们可以知道, 可查看配置的更新策略: 可以看到设备设置的策略有下面几个: 解决方案 这个时候我们就要进入设置更改那些策略即…

Java企业微信对接(二)微信端回调到企业端

准备工作 先下载demo 下载完成后的目录,把这些类之间copy到工程里面就行,都是封装好的加密算法 回调配置 什么时候需要回调 在集成企业微信与内部系统时,我们往往需要搭建一个回调服务。回调服务,可以实现: 自定义丰富的服务行为。比如,用户向应用发消息时,识别消…

RNA-seq 详细教程:count 数据探索(4)

学习目标 了解 RNA-seq count 数据的特征比较 count 数据的不同数学模型确定最适合 RNA-seq count 数据的模型了解设置生物学重复对于鉴定样本间差异的好处1. 计数矩阵 当开始差异表达基因分析时,先从一个矩阵开始,该矩阵总结了数据集每个样本中的基因水…

ZMQ请求应答模式之无中间件的可靠性--自由者模式

一、引言 我们讲了那么多关于中间件的示例,好像有些违背“ZMQ是无中间件”的说法。但要知道在现实生活中,中间件一直是让人又爱又恨的东西。实践中的很多消息架构能都在使用中间件进行分布式架构的搭建,所以说最终的决定还是需要你自己去权衡…

3.8、集线器与交换机的区别

1、早期总线型以太网 最初使用粗同轴电缆作为传输媒体,后来是用相对便宜的细同轴电缆 普遍认为有源器件不可靠,无缘的电缆线最可靠(并没有那么可靠) 2、只用双绞线和集线器 HUB 的星型以太网 主机中的以太网卡及集线器个接口使…

Old money风盛行,柯罗芭KLOVA演绎中式奢华

Ralph Lauren先生说过:“奢侈是一种感性的生活方式。它和本季推出什么新品无关。它更关乎个人风格和舒适、轻松的环境。奢侈品是质量和永恒的优雅”。Ralph lauren以一己之力托起Old money风格的半壁江山,它属于带着一丝上流社会的雅痞绅士,优…

一起学时序分析之建立/保持时间裕量

何为裕量? 裕量,英文名称叫做“Slack”。我们在Vivado实现后的报告中常常能看到这样一栏: 因为都是缩写,所以我们来解释一下前四栏的含义: WNS,即Worst Negative Slack,最差负时序裕量。这个表…

leetcode:1579. 保证图可完全遍历【并查集思路】

目录题目截图题目分析ac code总结题目截图 题目分析 从删除比较难,考虑增加增加的过程中无用的边就可以删除考虑alice和bob各自的联通分量最后希望都是1,一开始都是n如果将两个独立的联通分量连起来了,那么连通分量个数减1这里很明显就是用并…

kubernetes-Pod详解2

kubernetes-Pod详解2 文章目录kubernetes-Pod详解2Pod生命周期创建和终止pod的创建过程pod的终止过程初始化容器钩子函数容器探测方式一:Exec方式二:TCPSocket方式三:HTTPGet重启策略Pod调度定向调度NodeSelector亲和性调度NodeAffinityPodAf…

Kamiya丨Kamiya艾美捷AREG酶联免疫吸附试验原理

Kamiya艾美捷AREG酶联免疫吸附试验预期用途: 该试剂盒是一种用于体外定量测量大鼠AREG的夹心酶免疫测定法血清、血浆和其他生物流体。仅供研究使用。不用于诊断程序。 存储: 所有试剂应按照小瓶上的标签保存。校准器、检测试剂A、检测试剂B和96孔带板应…

ZMQ之高可靠对称节点--双子星模式

一、概览 双子星模式是一对具有主从机制的高可靠节点。任一时间,某个节点会充当主机,接收所有客户端的请求;另一个则作为一种备机存在。两个节点会互相监控对方,当主机从网络中消失时,备机会替代主机的位置。 双子星模…

gateway网关聚合knife4j文档,同时兼容swagger2与swagger3

基于前两篇文章,进行整合 springcloud-gateway 聚合swagger3请求接口丢失appliactionName解决 springcloud-gateway聚合knife4j接口文档 为何要兼容?微服务开发者有的使用了swagger2版本,有的使用了swagger3版本,但暴露外部给前…

聊一聊我的第一个开源项目

项目地址:https://github.com/kpretty/hdd 我在21年的国庆写过一篇文章:《Docker 实战:部署hadoop集群》,当时也是刚接触docker,作为docker第一个练手项目对很多概念理解的不是很到位,因此那篇文章所使用的…

基于PHP+MySQL菜品食谱美食网站的设计与实现

美食是人类永恒的追求,现在有很多的美食爱好者,他们希望通过自己的各种方式来学习更多的美食制作方式,以及分享自己制作美食的一些过程,说让更多的人。享受到更加美味可口的饭菜。本系统也是基于这样的目的来进行开发的。 本系统是通过PHP:MySQL来进行开发,主要实现…

存储器扩展,画图题

目录 存储器与CPU的接口 地址线的连接 数据线的连接 控制线的连接(读写和片选) 考题 引出 第一题 第二题 第三题 计算地址范围(这里用的38译码器) 第四题 填空题 第五题 第六题(2017) 要求&…

【微信小程序】CSS模块化、使用缓存在本地模拟服务器数据库

🏆今日学习目标:第十五期——CSS模块化、使用缓存在本地模拟服务器数据库 😃创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰预计时间:25分钟 🎉专栏系列:我的第一个微信小程序 文…

【这款神器可以有】3DMAX一键墙体门洞窗洞插件使用教程

3DMAX一键墙体门洞窗洞插件,只需导入户型图,单/双面墙体一键生成。 【主要功能】 --一键生成墙体 --一键门洞 --一键窗洞 --支持单/双面墙体生成 【安装方法】 无需安装,直接拖动插件脚本到3dmax窗口即可打开插件。 【快速开始】 将3dm…

11.我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景

我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景 本系列Netty源码解析文章基于 4.1.56.Final版本 写在前面..... 本文是笔者肉眼盯 Bug 系列的第三弹,前两弹分别是: 抓到Netty一个Bug,顺带来…