找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。

如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。

第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下:

  • 猪八戒落地

  • 游乐场

  • 画西瓜

  • 找不同

  • 消除数字球

找不同,本题是2024年8月24日举行的第15届蓝桥省赛Scratch初级组编程第4题,题目要求编程创作一个找不同游戏。游戏一共有3关,第一关是2 * 2矩阵,第二关是4 * 4矩阵,第三关是6 * 6矩阵,每一关中都有一个方块是浅色的,找到浅色方块并点击就可以进入下一关,3关全部通过则通关成功。

先来看看题目的要求吧。

一.题目说明

编程实现:

找不同。

具体要求:

1). 点击绿旗,瞬间出现一个2行2列的方块矩阵,其中随机一个方块的颜色较浅,变量“关卡”的值为1、“用时”的值为0,如图所示;

图片

2). ”用时”每隔1秒增加1,如图所示;

图片

3). 在第一关,用鼠标点击其中颜色较浅的方块后(点击深色方块无任何效果),”关卡” 增加1,进入第二关,瞬间出现一个4行4列的方块矩阵(其中随机一个方块的颜色较浅),如图所示;

图片

4). 在第二关,用鼠标点击其中颜色较浅的方块后(点击深色方块无任何效果),“关卡”增加1,进入第三关,瞬间出现一个6行6列的方块矩阵(其中随机一个方块的颜色较浅),如图所示;

图片

5). 在第三关,用鼠标点击其中颜色较浅的方块后(点击深色方块无任何效果),所有方块消失,“用时”不再变化,同时 “通关成功”出现并逐新变大(在1秒内大小从20 增加到 100,能看到变大的过程),而后程序结束。

图片

评判标准:

  • 13分:满足"具体要求"中的1);

  • 5 分:满足"具体要求"中的2);

  • 16分:满足"具体要求"中的3);

  • 16分:满足"具体要求"中的4);

  • 10分:满足"具体要求"中的5)。

二.思路分析

本题包含两个角色,分别是方块和成功角色,如图所示:

图片

其中,方块角色有两个造型,一个是深色方块,一个是浅色方块,如图所示:

图片

本题考查的知识点主要包括克隆技巧、私有变量、自制积木和事件广播等。

这道题和2023年10月29日举行的第二次STEMA测评中的找不同游戏有异曲同工之妙,你可以参考《找不同游戏-第15届蓝桥第二次STEMA测评Scratch真题精选》这篇教程。

根据题目的描述,我们使用分解思维将作品拆分成如下几个部分:

  • 克隆多行多列的方块矩阵

  • 切换关卡

  • 计时功能

  • 通关成功

其中克隆方块矩阵和切换关卡是本题的难点,我们着重进行分析。

1. 克隆方块矩阵

这里有三种不同的方块矩阵,分别是2行2列、4行4列、6行6列,其本质都是m行n列。

关于多行多列的克隆场景,超平老师总结了一个超级好用的“克隆4兄弟"模型,如下:

图片

直接套用就行,只需要根据实际要求设置好行数m、列数n、起点x、起点y、水平间隔和垂直间隔等即可。

比如,本题中的关卡2中是4行4列的方块,克隆如下:

图片

克隆效果如下:

图片

在众多的方块中,有一个随机的方块是浅色,这就说明我们需要区分每一个克隆体。针对这个问题,我们有一个简单的模型----“自私的ID”。

所谓自私的ID,是指给克隆体增加一个私有变量ID,用来表示克隆体的编号,一般从1开始。

与此同时,我们使用一个公有变量“随机数”,来指定浅色方块的编号,如果方块的ID等于随机数,就切换成浅色造型。

题目要求瞬间生成方块矩阵,必须借助自制积木的不刷新特性,我们可以将每个关卡用一个自制积木来表示,以关卡2为例,编写代码如下:

图片

关卡1和关卡3的代码和这个基本一样,如此一来,克隆矩阵的问题就轻松解决了。

2. 切换关卡

切换关卡,会涉及到如下几个方面:

  • 变量增加1

  • 克隆新的方块矩阵

  • 删除原有的方块

前面两点比较简单,关键是第3点,在生成新的方块矩阵之前,需要删除之前剩下的方块克隆体,这个先后顺序非常重要。

这就需要使用“广播并等待”指令,一旦完成一关,需要发送一个广播消息,将所有的克隆体都删除掉,然后再克隆下一关的方块矩阵。

搞定了两个难点,其它的就相对比较简单了,接下来,我们就进入程序实现环节。

三.编程实现

根据上面的思路分析,我们分4步来完成作品:

  • 定义自制积木克隆方块矩阵

  • 切换关卡

  • 计时功能

  • 通关成功

1. 定义自制积木克隆方块矩阵

根据前面的思路分析,定义关卡1的自制积木如下:

图片

定义关卡2的自制积木如下:

图片

同理,定义关卡3的自制积木如下:

图片

在定义自制积木的时候,再强调4个细节:

1). 自制积木要勾选“运行时不刷新屏幕”,确保瞬间生成方块矩阵;

2). ID必须是私有变量,增加_只是书写代码的一个好习惯;

3). 注意ID的初始值和增加的位置,确保ID从1开始,建议让角色说出ID,来检验是否正确;

4). 合理设置起点的x、y坐标和方块之间的间隔,尽量确保矩阵位于舞台中间位置。

2. 切换关卡

根据前面的分析,在绿旗下编写代码如下:

图片

代码比较简洁,强调3点:

1). 本体要隐藏起来,同时将初赛造型设置为1,即深色的方块;

2). “关卡”是公有变量,初始值为1,表示刚开始是进入第一关;

3).  在切换关卡的时候,用到了两个指令,一个是“等待条件”指令,一个是“广播并等待”指令,这样可以确保通过一关,所有的克隆体都删除之后,才进入下一关;

对应的克隆体需要显示出来,代码如下:

图片

在点击方块时,如果是浅色方块,即造型为2时,就表示通关了,对应的代码如下:

图片

注意代码的执行过程,当点击浅色方块后,变量关卡增加1,比如从1增加到2,此时绿旗代码块中的"等待关卡= 2"条件就满足了,如图:

图片

于是,就发送一个“过关”的广播消息,对应的,克隆体在接收到广播后删除自己,代码如下:

图片

等待所有的克隆体都删除之后,就生成下一关的方块矩阵。

3. 计时功能

计时功能比较简单,我们可以使用一个独立的积木块来实现,代码如下:

图片

代码非常简单吧。

5. 通关成功

当第3关通关之后,游戏就结束了,按照前面的逻辑,关卡会变成4。有的同学会这么处理,当关卡变成4之后,再重新设置为3,这么做也是可以的。

实际上,我们可以在“关卡”变量增加的时候,增加一个逻辑判断,如果当前关卡为3,就表示通关成功,否则就将关卡加1。

只需要将前面的“当角色被点击”代码块稍作修改即可,如下:

图片

如果当前已经是关卡3了,意味着要结束游戏了,此时变量不再增加。同时需要发送两个广播消息,一个是“过关”,其作用是通知各克隆体删除自己,一个是“成功”,要显示通关成功的效果。

由于前面的计时是无限循环,所以在通关成功时,需要停止计时,在方块角色中,增加如下代码:

图片

相应的,成功角色需要显示出来,并有一个从小变大的动画效果,在成功角色中编写代码如下:

图片

代码比较简单,需要强调一点,就是不要使用“停止全部脚本”指令,放在哪里都不合适,要么动画效果出不来,要么就是计时不精确。

至此,整个作品就创作好了,是时候放松一下体验体验自己的闯关游戏啦。

四.总结与思考

本题是初级组编程部分第4题,分数为60分,积木块数量80个左右,涉及到的知识点主要包括:

  • 克隆编程;

  • 自制积木;

  • 私有变量;

  • 事件广播机制;

作为本次初级组省赛的第4题,难度中等,完成时间20分钟左右。本题的难点有两个,一是如何快速克隆出多行多列的方块矩阵,二是如何实现关卡的切换。

关于第一个问题,只要你熟练掌握了超平老师总结的“克隆4兄弟”模型,做出来应该是非常轻松的事情。

真正的难点就是如何切换关卡,这涉及到流程的控制,本题使用了“等待条件”指令和“广播并等待”指令,完美的实现了关卡切换。

超平老师给你留一个思考题,在上面的代码中,我们定义了3个自制积木,分别用于实现3个方块矩阵的克隆。

仔细分析代码,可以发现大部分代码都是相同的,完全可以使用一个自制积木来实现,增加几个参数,在调用时分别传入不同的值就可以了,这样还可以节省不少代码,你知道该如何实现吗,赶紧试一下吧。

你还有什么好的方法吗,非常欢迎您和超平老师交流分享。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要素材和源码的,可以移步至”超平的编程课“gzh。

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

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

相关文章

GAMES101(0~1作业)

搭建虚拟机环境 安装Oracle VM VirtualBox虚拟机,安装虚拟硬盘,配置Linux Ubuntu-64 bit系统,启动虚拟机,发生冲突错误: 将Vmware虚拟设备取消挂起状态,关机确保 Hyper-V 完全关闭:bcdedit /se…

【Python · Pytorch】配置cuda环境 cuDNN库

【Python Pytorch】配置cuda环境 & cuDNN库 1. 查找对应版本1.1 查看Pytorch GPU目前支持版本1.1 查看Nvidia驱动版本1.2 查看支持cuda版本1.3 查看支持cuDNN版本1.3.1 cuDNN 9.0.0及以上版本1.3.2 cuDNN 9.0.0以下版本 1.4 安装版本确定 2. 安装cuda环境2.1 cuda简介2.1.…

Leetcode Hot 100刷题记录 -Day10(合并区间)

合并区间 问题描述: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti,endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入&…

【计算机网络】浏览器输入访问某网址时,后台流程是什么

在访问网址时,后台的具体流程可以因不同的网站、服务器和应用架构而异。 实际过程中可能还涉及更多的细节和步骤,如缓存处理、重定向、负载均衡等。 此外,不同的网站和应用架构可能会有不同的实现方式和优化策略。 部分特定网站或应用&#x…

【C++】stack、queue、priority_queue的模拟实现

目录 一、stack 🌟stack的简单介绍 🌟stack的基本使用 🌟stack的模拟实现 🌟stack模拟实现的完整代码 🌟容器适配器 二、queue 🌟queue的简单介绍 🌟queue的基本使用 🌟q…

828华为云征文|Flexus云服务器X实例快速部署在线测评平台,适用各种信息学教学

文章目录 如何选配Flexus云服务器X实例服务器HydroOJHOJ 服务器资源的选取基础配置实例规格镜像、存储、网络弹性公网IP云服务器名称 部署HydroOJ1.设置安全组、开放端口2.部署HydroOJ回到控制中心,远程登录 部署HOJ安装docker# 安装docker-compose部署HOJ 本篇幅为…

Git 使用指南 --- 版本管理

序言 Git 是一个开源的 分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。对一个程序员来说,掌握 Git 的使用是必要的。  在这个系列中,将详细的介绍 Git 的使用和原理,话不多说,让我们开始吧。…

【C++ 面试 - STL】每日 3 题(四)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…

qiankun微前端

qiankun微前端踩坑指南: 上图原因子项目未启动 上图使用$tqiankun微前端中未引用i18n插件解决方案如下: 子项目main.js中加上i18n: 一些坑忘记截图复现会继续更新....... 配置正文开始------> 主项目 子项目 1.名字需要与子项目跳转后缀一致 2.v…

景联文科技:提供高质量多模态数据标注,推动智能化转型

随着人工智能技术的快速发展,多模态数据标注成为推动智能系统更深层次理解和应用的关键技术之一。 作为行业领先的多模态数据标注服务商,景联文科技凭借其在技术、流程和人才方面的综合优势,推出了全面的多模态标注解决方案,助力…

Python | Leetcode Python题解之第392题判断子序列

题目: 题解: class Solution:def isSubsequence(self, s: str, t: str) -> bool:n, m len(s), len(t)f [[0] * 26 for _ in range(m)]f.append([m] * 26)for i in range(m - 1, -1, -1):for j in range(26):f[i][j] i if ord(t[i]) j ord(a) el…

【5G PHY】5G循环前缀(CP)设计思路简述

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。 博客内容主要围绕…

将语义分割的标签转换为实例分割(yolo)的标签

语义分割的标签(目标处为255,其余处为0) 实例分割的标签(yolo.txt),描述边界的多边形顶点的归一化位置 绘制在原图类似蓝色的边框所示。 废话不多说,直接贴代码; import os import cv2 imp…

监控平台总结之面试常问答案

思路 延伸的面试题总结及答案: 1.说说前端监控平台/监控SDK架构设计和难点亮点? 架构设计 数据采集层: SDK: 在前端集成的 SDK 负责采集数据,包括性能指标、用户行为、错误日志等。 数据收集: 实现高效的数据采集机制,支持实时…

分类任务实现模型集成代码模版

分类任务实现模型(投票式)集成代码模版 简介 本实验使用上一博客的深度学习分类模型训练代码模板-CSDN博客,自定义投票式集成,手动实现模型集成(投票法)的代码。最后通过tensorboard进行可视化&#xff0…

傅里叶变换家族

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》 禹晶、肖创柏、廖庆敏《数字图像处理》资源二维码

java设计模式(行为型模式:状态模式、观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式、解释器模式)

6,行为型模式 6.5 状态模式 6.5.1 概述 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果…

太细了有手就行,SpringCloud Alibaba+Nacos+Dubbo整合

SpringCloud AlibabaNacosDubbo,文末有完整项目代码链接 前言一、这几者之间关系二、准备工作1.Nacos2.SpringCloud Alibaba4.SpringCloud5.Dubbo项目中层级关系 三、代码调用逻辑1.dubbo-api模块2.account-api模块3.api-service模块4.逻辑梳理 四、Maven和配置1.pa…

尽快更新!Zyxel 路由器曝出 OS 命令注入漏洞,影响多个版本

近日,Zyxel 发布安全更新,以解决影响其多款商用路由器的关键漏洞,该漏洞可能允许未经认证的攻击者执行操作系统命令注入。 该漏洞被追踪为 CVE-2024-7261,CVSS v3 得分为 9.8,是一个输入验证故障,由用户提…

了解PD快充协议和QC快充协议

PD快充协议的实现依赖充电器与设备之间的通信协议,这种通信协议确保了充电器能够提供设备所需要的特定电压和电流。在快充技术中快充协议起到关键角色。 现在市面上最常见的快充协议有PD、QC、华为FCP/SCP、三星AFC协议 、VOOC闪充。PD和QC 协议属于公用协议 。华…