记忆力考验游戏-第15届蓝桥第5次STEMA测评Scratch真题精选

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

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

第15届蓝桥杯第5次STEMA测评已于2024年3月10日落下帷幕,编程题一共有6题(初级组只有前5道编程题),分别如下:

  • 熊猫左右转

  • 返回地球

  • 吐丝的蜘蛛

  • 最大的三位数

  • 记忆力考验游戏

  • 回文数

记忆力考验游戏,本题是2024年3月10日举行的第15届蓝桥STEMA测评Scratch编程初/中级组编程第5题,题目要求编程实现记忆力考验游戏。舞台上有16张卡片,其中有4张为圆形图案,玩家需要翻出所有圆形图案,看谁用的时间更短。

先来看看题目的要求吧。

一.题目要求

编程实现:

记忆力考验游戏。

现有16张卡片,卡片的背面为“?“图案,卡片的正面为圆形或三角形图案,玩家有1秒的时间去记忆正面为圆形图案的卡片位置,然后点击卡片,卡片显示正面,如果正面为圆形图案,该卡片不再变化;如果正面为三角形图案,则0.3秒后该卡片再次显示背面,当正面为圆形图案的卡片都显示正面后,游戏结束。

具体要求:

1). 每次点击绿旗,“完成用时”为0,舞台上呈现4行4列排列整齐的卡片方阵,所有卡片均显示背面,如图所示;

图片

2). 1秒后,所有卡片显示正面,其中有随机的4张卡片正面为圆形图案,其它卡片正面均为三角形图案,如图所示;

图片

3). 1秒后,所有卡片都显示背面;

4). 此时开始,“完成用时” 每隔1秒增加1,如图所示;

图片

5). 用鼠标左键点击任意一张卡片,那么该卡片显示正面;

6). 如果被点击卡片的正面图案为圆形,则该卡片显示正面,如图所示;

图片

7). 如果被点击卡片的正面图案为三角形,那么该卡片0.3秒后再次显示背面;(参考视频)

8). 如果4张正面为圆形图案的卡片都显示正面后“完成用时”不再变化,游戏结束。

图片

评判标准:

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

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

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

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

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

  • 8分:满足"具体要求"中的6);

  • 10分:满足"具体要求"中的7);

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

二.思路分析

本题只有1个方块角色,如图所示:

图片

方块角色包含3个造型,分别是问号?、圆形○、三角形△,如图所示:

图片

本题考查的是知识点是克隆编程,包括克隆、私有变量、列表和点击事件等。

这是一个典型的克隆场景,并且是标准的4行4列克隆,直接使用“克隆4兄弟模型”,两分钟就可以搞定。

关于克隆4兄弟模型的用法,可以参考《变色游戏-第15届蓝桥第三次STEMA测评Scratch真题精选》这篇教程。

在克隆出来的16张卡片中,必须保证其中4张是圆形,其它12张是三角形。很显然这是“列表”擅长的事情,可以使用列表来保存每张卡片的造型编号,同时结合“私有变量”给克隆体进行编号。

当然,这16张卡片的造型是随机显示的,所以在向列表中加入数据的时候,需要用到“插队算法”。

关于插队算法的用法,可以参考《专注力训练游戏-第15届蓝桥第4次STEMA测评Scratch真题精选》这篇教程。

在点击卡片时,如果是三角形等0.3秒翻回去,如果是圆形则不动,当所有圆形都找到后,游戏结束,不再计时。

因此,我们需要借助变量来记录点击圆形的数量,当数量为4时结束游戏。

思路有了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们分4步来编写程序:

  • 初始化列表

  • 克隆卡片

  • 点击卡片

  • 计时和结束

1. 初始化列表

根据前面的思路分析,我们使用插队算法来生成列表数据,先创建一个列表“图案”,为方便讲解和组织代码,可以使用自制积木来完成这项工作。

定义自制积木如下:

图片

代码不难,简单说明三点:

1). 由于圆形的造型编号是2,三角形的造型编号是3,因此插入了4个2和12个3;

2). 12个2都是一样的,直接按顺序加入即可;

3). 3需要使用插队算法插入随机位置,这里直接将变量i的初始值设为13,就不需要使用指令来获取列表的长度了,代码更简洁。

执行代码,列表数据如下:

图片

注意,数据是随机插入的,所以每次执行数据都是不同的。

2. 克隆卡片

接下来就是克隆16张卡片了,直接使用克隆4兄弟模型即可,我们仍然使用自制积木来组织代码,定义自制积木如下:

图片

代码比较简单,注意3点:

1). _ID是私有变量,用来表示卡片的编号,编号从1开始,一直到16,刚好和列表的编号一致;

2). 卡片刚开始显示的是?,也就是造型1,先设置好,当然,你也可以在克隆体中进行设置,效果一样;

3). 如果想瞬间完成克隆,可以在定义自制积木时勾选”运行时不刷新屏幕“,这个不是必须的。

然后,在绿旗指令下调用自制积木,代码如下:

图片

注意二者的顺序,一定要确保先初始化列表,再进行克隆。

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

图片

代码比较简单,关键点在于使用私有变量“_ID”和列表“图案”,获取每张卡片的造型。

执行代码,卡片显示正面的效果如下:

图片

可以看到,编号为1、3、7、9的4个卡片是圆形,和列表中的数据完全一致。注意,由于列表数据是随机插入的,所以每一次执行的效果是不一样的。

3. 点击卡片

在点击卡片时,需要判断当前是圆形还是三角形,并进行相应处理,直接使用“当角色被点击”指令,继续编写代码如下:

图片

代码不多,强调3点:

1). 当卡片处于背面,也就是问号造型时,要获取自己的正面造型,需要通过_ID和列表来获取;

2). 一旦卡片显示正面了,就可以直接使用造型编号来判断是圆形还是三角形了;

3). 点击圆形图案次数是要统计的,这里使用了变量”圆形图案“,需要初始化操作,稍后会在绿旗指令下编写。

4. 计时和结束

最后是计时效果了,需要明确如下三个问题:

1). 在哪里编写代码?

2). 什么时候开始计时?

3). 什么时候结束计时?

本题有明确要求,在卡片翻回背面后才开始计时,于是很多同学就直接将计时写到了克隆体中。

那么,这样行不行呢?

很明显有问题,因为这里有16个克隆体,所有的克隆体都会执行计时代码,显然不对。更不能通过发送广播来实现,因为所有的克隆体和本体都会接收广播消息并执行代码。

所以,计时应该写在本体中,也就是绿旗指令下,但是要注意,卡片在翻回背面之前已经花了2秒钟,因此需要等待2秒才开始计时。

什么时候结束了呢,当然是所有的圆形卡片都找到了,从代码的角度来说,就是”圆形图案“变量 = 4,停止计时。

搞清楚这3个问题了,就可以在绿旗下面,编写代码如下:

图片

除了两个自制积木,其它代码是新加的,注意代码的顺序,变量的初始化尽量写在前面。

到这里是不是就ok了呢?

大部分同学以为已经大功告成了,实际上还有一个小bug。计时是停止了,但卡片还可以继续点击,需要完善一下。

完善的方法也很简单,在角色被点击时增加一个判断即可,包括两个条件,代码如下:

图片

如此一来,当计时结束后,点击卡片就不会有任何效果了,也避免多次点击同一○卡片,完美。

至此,整个作品就创作好了,赶紧测试一下自己的短时记忆力吧。

四.总结与思考

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

  • 运动编程;

  • 克隆编程;

  • 全局变量和私有变量;

  • 列表运算;

  • 造型切换及其灵活使用;

  • 点击事件;

本题是初级组的最后一题,难度中等,完成时间25分钟左右。关键点有两个,一是使用列表和私有变量来保存卡片的造型编号,二是使用插队算法来实现列表的随机效果。

又是一道典型的n宫格(包括多行多列)场景作品,在历届真题中已经出现过多次,比如:

  • 《专注力训练游戏-第15届蓝桥第4次STEMA测评Scratch真题精选》

  • 《变色游戏-第15届蓝桥第三次STEMA测评Scratch真题精选》

  • 《九宫格游戏-第14届蓝桥杯省赛Scratch初级组真题第5题》

  • 《植树节种树-第12届蓝桥杯Scratch选拔赛真题精选》

  • 《影院选座-第14届蓝桥杯STEMA测评Scratch真题精选》

它们其实都是一类题目,实现的核心点有如下3个:

1). 克隆4兄弟模型

2). 列表和私有变量

3). 插队算法

一旦你掌握了这些核心模型和算法,这类题分分钟就可以搞定了。除此之外,还有很多游戏,都会用到这些核心知识,比如井字棋、记忆翻牌游戏和数字华容道等。

超平老师给你留一道思考题,如果要把本题扩展为5宫格,该怎么实现呢,能否再进一步扩展到n(3 <= n <= 6)宫格呢?

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

monocular depth estimation 网络的 regression loss 选择

直接上图&#xff1a; 上述这么多loss&#xff0c;测评结果如下&#xff1a; 结论: L g a n L_{gan} Lgan​ 是效果最好的。 其具体实现见&#xff1a;https://github.com/marcelampc/d3net_depth_estimation/blob/master/pytorch/util/loss_bank.py github&#xff1a;htt…

【THM】Burp Suite:Other Modules(其他模块)-初级渗透测试

介绍 除了广泛认可的Repeater和Intruder房间之外,Burp Suite 还包含几个鲜为人知的模块。这些将成为这个房间探索的重点。 重点将放在解码器、比较器、排序器和组织器工具上。它们促进了编码文本的操作,支持数据集的比较,允许分析捕获的令牌内的随机性,并帮助您存储和注释…

【区块链 链外交易】SoK Off The Chain Transactions

SoK Off The Chain Transactions 摘要 本文对区块链进行了简单介绍,分析目前区块链的缺点——交易吞吐量和速度慢的原因,在此基础上引出解决此问题的方法,也是本轮将要论述的主题——链外交易。之后介绍了链外交易的基本概念和结构,并对两种类型的链外交易:通道和信任链…

Windows 11 安装tensorflow-gpu深度学习环境

前言 TensorFlow 是一个由 Google 建立的深度学习库&#xff0c;自从去年年初推出以来&#xff0c;它已经获得了很大的吸引力。主要功能包括自动微分、卷积神经网络(CNN)和回归神经网络(RNN)。它是用 C 和 Python 编写的&#xff0c;为了提高性能&#xff0c;它使用了一个名…

Linux环境基础和工具的使用

目录 1、Linux软件包管理器---yum 2、Linux开发工具 2.1、vim基本概念 2.2 vim基本操作 2.3 vim正常模式命令集 2.4 vim末行模式命令集 2.5 简单vim配置 2.5.1 配置文件的位置 3 Linux编译器--gcc/g的使用 3.1 背景知识 3.2 gcc完成 4 Linux调试器--gdb使用 4.1 背…

每日面经分享(pytest测试案例,接口断言,多并发断言)

pytest对用户登录接口进行自动化脚本设计 a. 创建一个名为"test_login.py"的测试文件&#xff0c;编写以下测试脚本 import pytest import requests# 测试用例1&#xff1a;验证登录成功的情况 # 第一个测试用例验证登录成功的情况&#xff0c;发送有效的用户名和密…

【Linux】ubuntu安装google gtest框架

本文首发于 ❄️慕雪的寒舍 ubuntu 22.04.03 LTS 安装 google gtest 框架 1.依赖项 首先在ubuntu中安装如下包 sudo apt install -y unzip g gcc cmake make automake2.下载软件包 进入google gtest的github页面&#xff0c;下载源码包 Releases google/googletest https…

云数据中心传输的出路

研发端到端协议不是出路&#xff0c;研发更智能调度流量的交换机不是出路&#xff0c;将流量按长短突发模式分流到不同链路(逻辑的或物理的)才是出路。所有高速传输的前提是标准化&#xff0c;统一简单的操作。多么简单的领悟。 数据中心网络具有范围小&#xff0c;带宽大&…

C语言 输入输出语句讲解 标识符概念讲解

上文 C语言 预处理器 注释 基本案例讲解 我们讲了一些 预处理器等逻辑 那么 本文继续 C语言由一个或多个函数组成&#xff0c;每个程序都必须有一个main() 函数 因为每个程序总是从这个函数开始执行 main() 函数可以返回一个值&#xff0c;返回值为0表示程序正常结束 如果有多…

38.基于SSM实现的传统文化网站系统(项目 + 论文)

项目介绍 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;作为一个一般的企业都开始注重与自己的信息展示平台&#xff0c;实现传统文化网站在技术上已成熟。本文介绍了传统文化网站的开发全过程。通过分析传统文化的需求&#xff0c;创建了一个计算机管理传统文化网站…

百廿荣光 逐梦远航——记黄城根小学120年校庆

逝者如斯&#xff0c;黄城根小学建校百二十年矣。回首往昔&#xff0c;峥嵘岁月&#xff0c;如画卷展开&#xff0c;历历在目&#xff0c;皆美景胜概。楼宇更迭&#xff0c;万象更新&#xff1b;历代师生&#xff0c;薪火相传。笃学笃行&#xff0c;育桃李于学堂&#xff1b;至…

Linux 内核优化简笔 - 高并发的系统

简介 Linux 服务器在高并发场景下&#xff0c;默认的内核参数无法利用现有硬件&#xff0c;造成软件崩溃、卡顿、性能瓶颈。 当然&#xff0c;修改参数只是让Linux更好软件的去利用已有的硬件资源&#xff0c;如果硬件资源不够也无法解决问题的。而且当硬件资源不足的时候&am…

低代码革新:软件开发的未来潜力与创新路径探索

过去的一年&#xff0c;挑战与机遇并存。人们一边忧虑市场经济下行所带来的新的增长难题、裁员危机&#xff0c;一边惊叹于AIGC、量子技术等领域不断涌现新的创新成果。 时代发生了改变&#xff0c;传统“互联网”的模式已走入尾声&#xff0c;新一轮的科技革命与产业变革正在到…

【VSCode+Keil5+STM32CubeMX】开发环境配置

一、软件下载 二、软件安装 三、配置环境 四、验证开发环境 五、Keil与VS Code的同步 从0到1搭建VS Code Keil5 STM32CubeMX开发环境 优点 支持标准库HAL库LL库代码编辑更“现代化”&#xff1a;代码提示、函数跳转、更高自由度的定制主题等优点多端同步&#xff0c;VS Code和…

深入了解C语言中的结构体类型与内存对齐

引言&#xff1a; 在C语言中&#xff0c;结构体是一种自定义的数据类型&#xff0c;它允许我们将不同类型的数据组合在一起&#xff0c;形成一个新的数据类型。结构体的使用为我们解决了一些复杂数据的表示和处理问题&#xff0c;不仅限于单单的整型或者字符。本文将深入探讨结…

金三银四上岸!2024最新Java高频面试题总结(附答案PDF)!

《Java面试全解析》1000道 面试题大全详解&#xff08;针对于应届生、三到五年经验、六到十年经验&#xff01;&#xff09; 本人是 2009 年参加编程工作的&#xff0c;一路上在技术公司摸爬滚打&#xff0c;前几年一直在上海&#xff0c;待过的公司有 360 和游久游戏&#xf…

Mysql数据库getshell方法

今天摸鱼时候&#xff0c;突然有人问我不同的数据库getshell的方式&#xff0c;一时间我想到了mysql还有redis未授权访问到getshell的方式&#xff0c;但是仅仅第一时间只想到了这两种&#xff0c;我有查了查资料&#xff0c;找到了上面两种数据库getshell的补充&#xff0c;以…

python实现泊松回归

1 什么是基于计数的数据&#xff1f; 基于计数的数据包含以特定速率发生的事件。发生率可能会随着时间的推移或从一次观察到下一次观察而发生变化。以下是基于计数的数据的一些示例&#xff1a; 每小时穿过十字路口的车辆数量每月去看医生的人数每月发现的类地行星数量 计数数…

Mysql 常用SQL语句

1、查看mysql中所有的数据库&#xff0c; show databases; 2、创建库 create database 库名;&#xff08;也可以用 create database if not exists 库名; 表示如果库不存在再创建&#xff09; 例&#xff1a;create database if not exists ecology; 3、删除库 …

Linux安全加固

账号和权限 系统用户 超级管理员&#xff1a;UID0 系统默认用户&#xff1a;系统程序使用&#xff0c;从不登录 新增普通用户&#xff1a;UID大于500 用户管理 添加用户&#xff1a;useradd <用户名> 删除用户&#xff1a;userdel [-r] [-f] <用户名> 锁定/解…