穿越病毒区-第15届蓝桥省赛Scratch中级组真题第2题

news2024/11/22 15:33:30

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

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

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

  • 抓不住的蜜蜂

  • 穿越病毒区

  • 画台扇

  • 收集松果

  • 占领矩阵

  • 截取递增数

穿越病毒区,本题是2024年8月24日举行的第15届蓝桥省赛Scratch中级组编程第2题,题目要求编程创作穿越病毒区游戏。小红不小心误闯入了一个紫色线围成的一个空间,游戏的任务是让小红离开病毒区,并完全进入到安全的蓝色区域。

先来看看题目的要求吧。

一.题目说明

编程实现:

穿越病毒区。

小红不小心误闯入了一个紫色线围成的一个空间,并且正好落在了有病毒出没的白色区域,游戏的任务是让小红离开病毒区,并完全进入到安全的蓝色区域。玩家用键盘控制小红上、下、左、右移动,若移动的途中与病毒接触,则任务失败;当小红完全进入到安全的蓝色区域时任务成功。

具体要求:

1). 点击绿旗,角色、背景如图所示(小红在空间靠左边的白色区域内,病毒在A处);

图片

2). 病毒从 A 处沿直线在2秒内移动到B处,再从B处在2秒内原路返回 A 处,如此往返移动;

3). 每按下一次键盘↑、↓、←、→按键,都可以让小红分别向上、下、左、右移动5步(小红不能穿越紫色线);

4). 如果小红碰到病毒,那么病毒停止移动,同时小红说“失败”,如图所示,1秒后程序结束(小红不能再移动);

图片

5). 如果小红完全进入蓝色安全区时,那么小红说 “成功”,如图所示,1秒后程序结束(小红、 病毒都不能再移动)。

图片

评判标准:

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

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

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

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

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

二.思路分析

本题提供了两个角色,分别是病毒和小红,如图所示:

图片

需要注意的是,这里的病毒区域空间是舞台背景,并不是某个角色,这说明,在判断是否越界时只能使用颜色碰撞。

我们可以分角色来进行分析。

1. 病毒角色

在整个游戏过程中,病毒只有三种状态,分别如下:

  • 初始位置

  • 在A和B之间来回移动

  • 停止不动

其中,重点是第二点,在A和B两点之间来回移动,题目是这么描述的,“A 处沿直线在2秒内移动到B处,再从B处在2秒内原路返回 A 处”。

此处的关键字是“在2秒内”,很明显,使用“在1秒内滑行到x,y”指令是最佳选择。

2. 小红角色

根据题目的描述,可以将小红的功能分成如下3个部分:

  • 上下左右移动

  • 碰到病毒游戏失败

  • 进入安全区游戏成功

上下左右移动本身比较简单,但是有两个关键点:

1). 如何处理按键操作;

2). 如何确保不穿越紫线;

实际上,类似的场景和效果,在第10届国赛中出现过,如图所示:

图片

题目要求使用键盘控制小球在圆形范围内运动,同时确保小球不能越过圆形边缘。具体详情可以参考《逃不掉的小球-第10届蓝桥杯Scratch国赛真题第1题》这篇教程。

关于按键处理有如下两种方式:

  • 使用事件模块中的”当按下xx键“;

  • 使用侦测模块中的”按下xx键“;

前面已经多次分析过,前者写代码比较方便,但是不受绿旗指令和停止脚本指令的控制,后者则可以更好的控制按键什么时候有效,什么时候无效。

针对题目描述,在游戏成功或失败之后,小红都不能再移动了,很显然使用后者更好。

至于不越过紫线,这个其实比较简单,在角色移动过程中,如果角色碰到紫线,就退回来,向前移动了几步,就退回来几步。

小红碰到病毒,游戏失败,这个直接使用碰撞检测就可以。小红进入安全区游戏成功,这个要怎么判断呢?

首先能想到的就是颜色碰撞,如果碰到蓝色,游戏成功,但是这样会出现如下情形:

图片

也就是说,小红还没有完全进入蓝色安全区域就停止下来了,这个不符合题目要求。

所以,有必要再增加一个条件,即小红的y坐标要小于蓝色区域的上边界,确保小红完全进入蓝色安全区域。

同时还需要注意,两个角色停止不动和说话如果同时进行,效果会更好,因此尽量不使用”停止全部脚本“指令。

思路有了,接下来,我们就进入程序实现环节。

三.编程实现

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

  • 病毒来回移动

  • 小红上下左右移动

  • 游戏失败

  • 游戏成功

1. 病毒来回移动

根据前面的思路分析,在病毒角色中编写代码如下:

图片

代码比较简单,强调两点:

1). 一定要记得初始化,确保病毒每次都是从A点开始移动;

2). 在确定角色位置时,可以使用三步定位法,即一拖二看三找,将角色拖到A点或B点,同时观察x和y坐标的变化,然后将滑行指令拖出来;

2. 小红上下左右移动

根据前面的思路分析,在小红角色中编写代码如下:

图片

代码不算少,但四个方向上的处理方式是一样的,强调两点:

1). 这里使用”将x/y坐标增加“来实现角色的移动,你也可以使用”移动5步“指令,但要设置方向和旋转模式;

2). 颜色碰撞检测必须要每个按键下分别处理,不要共用一个代码,从而避免小红越过紫线;

3. 游戏失败

为了更好地组织代码结构,我们将游戏失败和游戏成功的判断分别使用一个独立的代码块来实现。

在小红角色中,编写代码块如下:

图片

代码比较简单,说明3点:

1). 初始化一定要有,尤其是角色的位置必须设置,之所以放在这里,是因为下面使用了”等待碰到病毒“指令,这样可以确保在判断之前,小红角色已经放在初始位置了;

2). 针对这种只需要判断一次的场景,使用”等待条件“指令,代码更简洁;

3). 一旦游戏失败,立刻停止小红角色的其他脚本,可以确保小红立刻停止移动,同时还要让病毒也停下来,所以在说话之前发生了一个”失败“的广播消息;

对应的,切换到病毒角色,编写代码如下:

图片

4. 游戏成功

根据前面的分析,在小红角色中编写代码块如下:

图片

代码不多,简单说明两点:

1). 要确保小红能完全进入蓝色安全区域,需要同时满足两个条件,一是碰到蓝色,二是y坐标 < -15;

2). 和游戏失败一样,一旦游戏成功,需要停止两个角色的移动;

对应的,在病毒角色中编写代码如下:

图片

至此,整个作品就创作好了,赶紧帮助小红穿越病毒区吧。

四.思考与总结

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

  • 运动编程;

  • 按键处理;

  • 碰撞检测;

  • 事件广播机制;

这是中级组省赛的第2题,难度一般,完成时间10分钟左右。本题的关键点有两个,一是如何确保小红在移动过程中不越过紫线,二是如何检测小红是否已经完全进入蓝色安全区。

关于角色的移动,有如下三种方式:

1). 使用”移动10步“指令;

2). 使用”将x/y坐标增加10“指令;

3). 使用滑行指令;

如果有明确在几秒内到达指定位置,优先使用滑行指令;如果只是在水平方向和垂直方向上进行单向运动,优先使用”将x/y坐标增加10“指令;如果是其它方向上的直线运动,优先使用”移动10步“指令。

在Scratch编程中,要确保角色在指定区域内运动,比如圆形内、矩形内、复杂的不规则图形等,实现的方式就是”退步法“,只要碰到边界,就立刻退回去,退一步海阔天空嘛。

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

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

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

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

相关文章

CCF201912_1

题解&#xff1a; #include<bits/stdc.h>using namespace std;int n;bool shouldSkip(int num) {if (num % 7 0){return true;}while (num > 0){if (num % 10 7){return true;}num / 10;}return false; } int main() {scanf("%d", &n);int b[4] { 0…

Android Studio 安装配置教程(Windows最详细版)

目录 前言 Android Studio 下载 Android Studio 安装 Android Studio 使用 一、创建默认项目&#xff08;Compose&#xff09; 二、创建常规项目 三、使用ViewBinding 四、查看Gradle版本、SDK版本、JDK版本 ① Gradle版本 ② SDK版本 ③ JDK版本 前言 Android开发…

跟《经济学人》学英文:2024年09月14日这期 The sweet story of Peru’s blueberry boom

The sweet story of Peru’s blueberry boom Plucky farmers have transformed the market in only ten years plucky&#xff1a;英 [ˈplʌki] 勇敢的&#xff1b;无畏的&#xff1b;有胆识的 原文&#xff1a; Peru’s blueberry harvest is just beginning, and Ivan Ja…

自动驾驶:LQR、ILQR和DDP原理、公式推导以及代码演示(七、CILQR约束条件下的ILQR求解)

&#xff08;七&#xff09;CILQR约束条件下的ILQR求解 CILQR&#xff08;(Constrained Iterative Linear Quadratic Regulator)&#xff09; 是为了在 iLQR 基础上扩展处理控制输入和状态约束的问题。在这种情况下&#xff0c;系统不仅要优化控制输入以最小化代价函数&#x…

NET WPF使用组件库HandyControl

一、背景 WPF原生控件提供的API功能不够强大&#xff0c;设置一般的功能都需要进行很复杂的配置和实现。 1.1 原生按钮控件 例如&#xff0c;原生控件<Button/> 默认效果是这样的&#xff1a; MainWindow.xaml代码&#xff1a; <Window x:Class"wpf_demo.Mai…

SAP_ABAP_编程基础

SAP ABAP 顾问能力模型(同心圆方法论)_sap abap 顾问能力模型(同心圆方法论)-CSDN博客文章浏览阅读1.8k次,点赞5次,收藏35次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提供超级燃料!_sap abap 顾问能力模型(同心圆方法论)htt…

我们的Python服务器开发脚手架开放了

pdServer是我们实践过程中的产物&#xff0c;当我们在开发各类python应用时&#xff0c;经常需要一个server来提供服务。于是我们使用fastApi来提实现&#xff0c;并在这个过程中不断的完善&#xff0c;实现了JWT\SQL等。 我们的脚手架项目可以&#xff1a; fastApi实现一个服…

数据线电子行业MES系统功能与生产过程管理

万界星空科技针对数据线电子行业的MES系统&#xff08;制造执行系统&#xff09;&#xff0c;其具体功能、生产过程管理以及注塑机设备数据采集等方面&#xff0c;可以详细介绍如下&#xff1a; 一、电子行业MES系统具体功能 计划管理&#xff1a; MES系统能够根据客户需求和销…

潍坊网站建设-高端建站

在当今数字化时代&#xff0c;企业的在线形象越来越重要。潍坊作为一个经济发展迅速的城市&#xff0c;许多企业都意识到拥有一个高端网站的重要性。潍坊网站建设不仅仅是技术层面的开发&#xff0c;更是品牌形象和市场竞争力的体现。高端建站的核心在于用户体验、视觉设计和功…

论文解读《NewsBench:一个评估中文新闻大型语言模型编辑能力的系统评估框架》

引言&#xff1a;感觉这篇文章&#xff0c;对 LLMs 的新闻编辑能力做了一个详细的实验和分析&#xff0c;而且还贡献了一个宝贵的中文新闻数据集&#xff0c;蛮不错的&#xff0c;后面或许可以用起来&#xff0c;就拜读了一下。 这篇博客的题目说是解读&#xff0c;其实大部分…

赵进喜:不透析、不用肾移植,“三维护肾”巧治尿毒症

潜心研究中医药治疗尿毒症等慢性肾脏重症40余年来&#xff0c;北京名老中医&#xff0c;慢性肾病国医大师吕仁和教授医术传承人&#xff0c;全国优秀基层名中医赵进喜总结出弥足珍贵的重症良方&#xff0c;临床应用无数次守护近10万肾病重症患者生命。让仅有22岁的慢性肾衰尿毒…

DORIS - DORIS之倒排索引

什么是倒排索引&#xff1f; 倒排索引&#xff08;Inverted index&#xff09;&#xff0c;也常被称为反向索引、置入档案或反向档案&#xff0c;是一种索引方法&#xff0c;用于存储在全文搜索场景下某个单词在一个文档或者一组文档中的存储位置的映射&#xff0c;它是文档检…

AI开发-FAQ

1 需求 2 接口 3.1 pip下载指定版本 pip install package1.0.4 3.2 pip设置代理 pip install --proxyhttp://10.10.1.10:3128 somepackage 3.3 PyCharm设置代理 import os os.environ[http_proxy] http://your_proxy:port os.environ[https_proxy] http://your_proxy:portf…

java开发中间件学习记录(持续更新中~)

1 Redis 2JVM 3 java基础底层 4Mysql 5 spring 6 微服务 7.......(持续更新) One:Redis篇 1:Redis 1.穿透 1.1缓存穿透 1.1.1布隆过滤器 1.2缓存击穿 2&#xff1a;击穿 1.3&#xff1a;缓存雪崩 1.4:双写一致 1.5.持久化&#xff08;RDB,AOF&#xff09; 1.6…

80V降24V2A同步降压WT6037

80V降24V2A同步降压WT6037 WT6037是一款适用于36V-80V输入电压范围&#xff0c;输出24V2A电流的同步降压恒压芯片。该芯片具有宽输入电压范围&#xff0c;高转换效率&#xff0c;低静态电流消耗等特点&#xff0c;可广泛应用于电池组系统&#xff0c;电动自行车&#xff0c;电动…

SD-WAN网络如何实现双向访问?

在SD-WAN架构中&#xff0c;双向访问是一个重要的概念&#xff0c;它允许网络流量在不同方向上流动&#xff0c;从分支机构到数据中心或云端&#xff0c;再从数据中心或云端返回分支机构。本文将详细探讨SD-WAN如何实现双向访问&#xff0c;并解释其背后的工作原理。 什么是双向…

对话世优科技CEO纪智辉:AI模型让数字人发展按下加速键

2024年9月12日&#xff0c;中国国际服务贸易交易会全球服务贸易峰会在北京举行&#xff0c;世优科技作为深耕虚拟数字人领域的科技企业&#xff0c;聚焦“新而专”&#xff0c;连续两届参加服贸会。2024年&#xff0c;世优科技以合作供应商身份参与本届服贸会。 在AI的大浪潮下…

Jetpack Compose Side Effects in Details 副作用的详细信息

What is Side Effect’s? 副作用是什么&#xff1f; Side Effects is a change in the state of the application that occurs outside the scope of the composable function and is not related to the UI. In non-UI related state changes, our screen may recompose mor…

一、机器学习算法与实践_02KNN算法笔记

1、KNN基本介绍 1.1 定义 KNN&#xff08;K-NearestNeighbor&#xff0c;即&#xff1a;K最邻近算法&#xff09;是一种基于实例的学习方法&#xff0c;用于分类和回归任务&#xff0c;它通过查找一个数据点的最近邻居来预测该数据点的标签或数值。 所谓K最近邻&#xff0c;…

性能测试-性能分析与调优原理总结

性能分析与调优如何下手&#xff0c;先从硬件开始&#xff0c;还是先从代码或数据库。 从操作系统&#xff08;CPU调度&#xff0c;内存管理&#xff0c;进程调度&#xff0c;磁盘I/O&#xff09;、网络、协议&#xff08;HTTP&#xff0c; TCP/IP &#xff09;&#xff0c;还是…