找一找马里奥-第14届蓝桥杯STEMA测评Scratch真题精选

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

蓝桥杯选拔赛现已更名为STEMA,即STEM 能力测试,是蓝桥杯大赛组委会与美国普林斯顿多文化教育研究中心合作推出的考试项目。STEM能力测试致力于综合评价学生的 STEM 水平,对学生的科技素养、逻辑思维和编程能力等三方面进行客观科学的测试。

找一找马里奥,本题是2023年3月12日举行的第14届蓝桥杯STEMA考试Scratch图形化编程真题初/中级组编程部分第3题。题目要求编程实现找一找马里奥游戏,在黑暗模式下移动鼠标找到在舞台上移动的马里奥。

先来看看题目的要求吧。

一.题目说明

编程实现:

找一找。

具体要求:

1). 点击绿旗,角色、背景如图所示;

2). 马里奥在舞台中心向随机方向持续移动,当碰到舞台边缘时反弹(旋转方式为左右翻转);

3). 按下空格键,舞台灯光关闭进入黑暗模式并出现追光灯的圆形照射区域,追光灯的圆形照射区域持续跟随鼠标移动(黑暗模式和追光灯的圆形照射区域,请自行创建且追光灯的圆形照射区域大小如下图所示);

4). 当追光灯的圆形照射区域中出现移动的马里奥,用鼠标点击马里奥,马里奥立刻停止移动,此时开启舞台灯光,左下角的数字变为1,程序结束。

评判标准:

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

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

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

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

二.思路分析

本题提供了两个角色,分别是马里奥和数字,如图所示:

根据题目描述,还需要自行绘制一个追光灯角色,追光灯是一个黑色的矩形,大小要能够完全覆盖舞台区域,同时要漏出一个圆形透明区域。

因此,本作品一共有3个角色,各角色的功能如下:

  • 马里奥在舞台上随机移动

  • 追光灯随鼠标移动

  • 数字开始为0,找到马里奥后变成1

默认情况下,舞台呈现灯光模式,当按下空格键后进入黑暗模式,所谓的黑暗模式就是将追光灯角色显示出来。

本作品的难点在于追光灯角色的绘制,需要结合圆形工具和橡皮擦功能,绘制过程大致可以分为以下5步:

第1步,选择绘制角色,进入造型绘制界面,如图所示:

第2步,先绘制一个黑色的矩形,如图所示:

注意,矩形不需要太大,等擦除一个透明区域后再放大。

第3步,使用橡皮擦进行擦除,漏出一个圆形透明区域,如图:

注意,橡皮擦最大只能设置为100,这就是为什么先绘制一个小矩形的原因。

第4步,将图形转换为位图模式,再转换为矢量图模式。

第5步,放大黑色矩形区域,覆盖整个造型区域,如图:

将角色设置为200或者更大的数值即可,但实际上由于角色太大,往往无法设置更大的值。

需要说明的是,不同的Scratch版本绘制的效果略有不同,为了得到更高的效果,建议做两次转换,也就是上面的第4步,先转成矢量图,再转成位图,然后放大。

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

三.编程实现

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

  • 马里奥角色

  • 追光灯角色

  • 数字角色

1. 马里奥角色

点击绿旗时,马里奥角色位于舞台中心,然后面向随机方向开始移动,当碰到舞台边缘时反弹,在黑暗模式下,如果点击马里奥,则停止运动,在马里奥角色中编写代码如下:

说明两点:

1). 随机方向的标准范围是-180到180,写成0到360也是可以的,因为Scratch会进行自动转换;

2). 当马里奥停止移动后,发送了一个”找到啦“的广播消息。

2. 追光灯角色

默认情况下,追光灯处于隐藏状态,当按下空格键后显示,并跟随鼠标移动,当找到马里奥后隐藏起来,对应的代码如图所示:

这里有一个细节需要注意,在正式考试时,是有视频文件的,考生可以通过播放视频预览作品效果。

其中追光灯在出现的时候,是逐渐显示的,这可以通过虚像特效来实现,虚像特效是指角色的透明度,虚像为0时,角色正常显示,当虚像为100则完全透明,我们也就看不见了。

3. 数字角色

数字角色非常简单,开始显示0,找打马里奥后显示1,对应的代码如下:

至此,我们的找一找马里奥小游戏就创作好了。

四.总结与思考

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

  • 运动编程,包括旋转模式、方向设置和反弹运动;

  • 外观编程,包括显示、隐藏、切换造型和虚像特效;

  • 循环编程,包括重复10次、无限重复和重复执行直到三种不同的循环;

  • 随机数指令;

  • 事件广播机制;

  • 角色点击和按下空格的检测。

如果仅从代码层面来看,本题属于简单题目,由于需要考生自行绘制角色,无形之中增加了题目的难度,一部分考生由于不熟悉Scratch角色绘制工具和技巧,导致没能做出追光灯效果。

这就是STEM测评的考试特点,在考察知识点的同时,还考察了孩子的自主探索能力,如果孩子平时喜欢摸索,在编程创作时自己绘制各种角色,这道题就非常简单了。

不知道你发现了没,针对上面的程序,如果没有打开追光灯,直接点击马里奥,数字也会从0变为1,同时结束程序。由于题目并没有严格要求必须先打开追光灯,所以这么写是可以的,如果要保证在开启追光灯之后才能点击马里奥,该怎么做呢,这就算是留给你的思考题吧。

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

需要素材和源码的,可以移步至“超平的编程课”gzh,或者联系本人。

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

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

相关文章

《Linux的权限》

本文主要对linux的一些基本权限进行讲解 文章目录前言Linux权限(1)权限的概念(2)linux下用户分类(root,普通)(3)linux的文件属性文件属性的分类文件权限修改文件权限1、chmod2、chown和chgrp3、fiile权限的三个重要的问题第一个问…

Java面向对象:接口的学习

本文介绍了Java中接口的基本语法, 什么是接口, java中的接口 语法规则, 接口的使用,接口的特性,如何实现多个接口,接口间的继承,以及抽象类和接口的区别 Java接口的学习一.接口的概念二.Java中的接口1.接口语法规则2.接口的使用3.接口的特性4.实现多个接口5.接口间的继承三.抽象…

C++线程池理解

线程池基本信息 线程池是一种结合池化思想衍生出来的一种线程管理及使用的方案 其主要针对服务器端多线程场景下,服务器频繁接收请求,每个请求都分配一个单独的线程去处理。 使用线程的开销: 创建和销毁线程调度线程 线程池主要解决的核…

你是真的“C”——结构体中鲜有人知的“秘密”

你是真的“C”——结构体中的精髓剖析【内存对齐】 【位段】 😎前言🙌结构体内存对齐:😊结构体内存对齐存在的意思是什么?😘内存对齐例子详细剖析:😘结构体中的位段:&…

基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目

本文是专栏《Vue SpringBoot前后端分离项目实战》的实战第一篇,将从Vue脚手架安装开始,逐步带你搭建起一套管理系统所需的架构。当然,在默认安装完成之后,会对文件目录进行初步的细化拆分,以便后续功能迭代和维护所用…

ChatGPT没有API?OpenAI官方API带你起飞

目录ChatGPT没有API?OpenAI官方API带你起飞安装 OpenAI 的 API 库包装个函数包装个UIAPI 调不通怎么办?ChatGPT没有API?OpenAI官方API带你起飞 前段时间ChatGPT爆火,OpenAI 的 GPT API也被大家疯狂调用, 但其实这个AP…

超详细的堆排序,进来看看吧。

1.堆的基本概念1.1什么是堆堆是一种叫做完全二叉树的数据结构,1.2大堆和小堆大堆:每个节点的值都大于或者等于他的左右孩子节点的值小根堆:每个结点的值都小于或等于其左孩子和右孩子结点的值1.3完全二叉树节点之间的关系leftchild parent*2 1rightchild parent*…

string类(上)

string类(上)1.标准库中的string类2.string类对象的常见构造①string()②string(const char* s)③string(size_t n,char c)④string(const string&s)⑤string(const string& str,size_t pos,size_t lennpos)⑥string(const char* s,s…

【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统

本文目录1、推荐系统的关键元素1.1 数据1.2 算法1.3 业务领域1.4 展示信息2、推荐算法的主要分类2.1 基于关联规则的推荐算法基于Apriori的算法基于FP-Growth的算法2.2 基于内容的推荐算法2.3 基于协同过滤的推荐算法3、推荐系统常见的问题1、冷启动2、数据稀疏3、不断变化的用…

java 每日一练 (9)

文章目录1. 单选2. 编程1. 单选 1. 下面程序的输出是:() A : FmNwxy B :fmnwxy C :wxyfmn D : Fmnwxy 答案 : D , 这里主要考察 toUpperCase 和 replace 方法 , 注意点 : toUpperCas…

动态规划-基础(斐波那契数、爬楼梯、使用最小花费爬楼梯、不同路径、不同路径II、整数拆分、不同的二叉搜索树)

动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的。动态规划问题,五步走:状态定义&am…

【数据结构】双向链表

🚀write in front🚀 📜所属专栏: 初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是…

海思SD3403/SS928V100开发(7)mcp2515-SPI转CAN驱动开发

1. 前言 需求: 需要一路can进行收发 分析: 根据目前使用较多的方案是使用主控端SPI接口 接入MCP2515芯片进行CAN协议转换 硬件: MCP2515->SPI2->SS928 2. Uboot开发 2.1 pinmux复用配置 2.1.1 修改uboot参数表 路径: osdrv/tools/pc/uboot_tools/ SS928V100…

Android 进程间通信机制(三) 系统进程与应用进程通信

一. 概述 Android中有一个重要的系统进程(system_server),运行着系统中非常重要服务(AMS, PMS, WMS等), 针对Activity而言,系统进程需要不断地调度Activity执行,管理Activity的状态; 每一个APK都需要运行在一个应用进程中&#xf…

【动态规划】最长上升子序列(单调队列、贪心优化)

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

jvm-题库

1、JVM内存模型 JVM内存区域总共分为两种类型 线程私有区域:程序计数器、本地方法栈和虚拟机栈 线程共享区域:堆(heap)和方法区 特征 线程私有区域:依赖用户的线程创建而创建、销毁而销毁,因用户每次访问都…

带头双向循环链表

在前面我们学习了单链表,发现单链表还是有一些不够方便,比如我们要尾插,需要遍历一遍然后找到它的尾,这样时间复炸度就为O(N),现在我们引入双向带头链表就很方便了,我们先看看它的结构。通过观察,我们发现一…

Vue全新一代状态管理库 Pinia【一篇通】

文章目录前言1. Pinia 是什么?1.1 为什么取名叫 Pinia?1.2. 为什么要使用 Pinia ?2. 安装 Pinia2.1.创建 Store2.1.1. Option 类型 Store2.1.2 Setup 函数类型 Store2.1.3 模板中使用3. State 的使用事项(Option Store )3.1 读取 State3.2 …

EEPROM芯片(24c02)使用详解(I2C通信时序分析、操作源码分析、原理图分析)

1、前言 (1)本文主要是通过24c02芯片来讲解I2C接口的EEPROM操作方法,包含底层时序和读写的代码; (2)大部分代码是EEPROM芯片通用的,但是其中关于某些时间的要求,是和具体芯片相关的,和主控芯片和外设芯片都有关系&…

一天吃透TCP面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…