小狗避障-第14届蓝桥杯省赛Scratch中级组真题第4题

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

小狗避障,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组编程第4题,题目要求编程实现小狗避障效果。玩家输入一个5-8之间的数字,在舞台上呈现对应数量的柱子,1秒后小狗水平向右移动,并且依次绕过每根柱子。

先来看看题目的要求吧。

一.题目说明

编程实现:

小狗避障。

具体要求:

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

2). 舞台下方出现询问框:"输入5-8之间的一个数字"(包含5和8);

3). 如果输入的数字不在5-8之间,询问框说:"请重新输入5-8之间的一个数字";

4). 如果输入的数字在5-8之间,在舞台上呈现对应数量的避障柱子;

5). 等待1秒,小狗水平向右移动,并按照以下要求绕过每根柱子;

要求:从第1根柱子后面绕过,从第2根柱子前面绕过,从第3根柱子后面绕过……以此类推。(可明显看到小狗跑动的过程,且动作连贯没有延迟与卡顿,请以程序演示视频为准);

6). 3秒内小狗到达舞台右边缘,程序结束。

评判标准:

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

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

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

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

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

  • 5分,满足"具体要求"中的6)。

二.思路分析

本题包含两个角色,分别是小狗和柱子,如图所示:

其中,小狗角色有4个造型,如图:

根据题目描述,可以将作品拆分成3个小模块:

  • 玩家输入数字

  • 克隆柱子

  • 小狗向右移动

其中,玩家输入数字需要使用问答指令,但是要确保输入的数字在5~8之间,如果不在这个范围内,则重新提问,一般的解决方案是使用直到循环。

克隆柱子比较简单,根据玩家输入的数字自左至右依次克隆即可。

小狗向右移动也比较简单,不过这里有一个难点,就是要求小狗从奇数根柱子后面绕过,从偶数根柱子前面绕过。

这就涉及到角色的层次关系,如果将柱子从1开始编号,对于编号为奇数的柱子,要移到前面,编号为偶数的柱子则移到后面。

这里有一个小疑问,是改变小狗的层次关系简单呢,还是改变柱子的层次关系更简单呢?

相对来说,改变柱子的层次关系更为简单,你说是吧。接下来,我们进入具体的编程实现环节。

三.编程实现

根据题目描述和思路分析,我们可以分如下3个步骤来编写程序:

  • 玩家输入数字

  • 克隆柱子

  • 小狗向右移动

1. 玩家输入数字

首先,要明确到底是哪个角色在询问呢,小狗、柱子还是舞台背景?

小狗肯定不行,因为点击绿旗时小狗处于显示状态,柱子和舞台背景都是可以的,相对来说,在柱子角色中询问更为简单。

其次,要注意询问的内容有两句,一句是”输入5-8之间的一个数字“,一句是”请重新输入5-8之间的一个数字“。

如果输入的数字不在5~8之间,则一直要重复询问,切换到柱子角色中,编写代码如下:

同时要注意,角色的初始化不能少,包括隐藏和坐标设置。

2. 克隆柱子

一旦用户输入正确,就要开始克隆柱子了,克隆比较简单,重点是如何给柱子进行编号,从而区分哪个处于奇数位置,哪个处于偶数位置。

相信聪明的你已经想到了,使用变量,全局变量和私有变量都可以。如果是全局变量,就表示柱子的顺序,如果是私有变量,就可以用来表示柱子的编号。

此处,我采取私有变量的方案,在上面的代码块后面,继续编写代码如下:

这里的”_ID“是私有变量,加下划线只是个人习惯,重要的是要勾选”仅适用于当前角色“,如图:

在代码的最后面,增加了一个”广播go“的指令,其作用是告诉小狗可以开始移动了,稍后在第3步编写具体代码。

一旦生成了柱子克隆体,就需要将柱子显示出来,同时根据其ID设置层次关系,对应的代码如下:

判断奇偶数就是看数字能不能被2整除,如果能整除就说明是偶数,否则就是奇数,所以这里用到了余数指令。

3. 小狗向右移动

点击绿旗时,小狗位于舞台左下方,对小狗角色进行初始化设置,切换到小狗角色,编写代码如下:

在接收到”go“广播消息后,开始向右移动,对应的代码如下:

简单说明4点:

1). 题目要求等待1秒小狗才开始移动,所以在接收到广播消息之后,增加了一个”等待1秒“指令;

2). 判断是否到达舞台右边缘,不能直接使用”碰到舞台边缘“指令,这是因为舞台边缘包括上下左右4个边缘,角色的初始位置就位于舞台左边缘;

3). 由于在移动的过程中有连贯动作,也就是切换造型,但是不能切换太快,所以增加了一个”等待0.1秒“指令;

4). 题目要求3秒内到达舞台右边缘,可以通过改变移动速度来实现,比如这里的”将x坐标增加20“,你也可以设置为其它的值;

至此,小狗避障作品就创作好了,看看这只聪明的小狗是如何绕过柱子的吧。

四.总结与思考

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

  • 问答指令;

  • 克隆编程;

  • 私有变量;

  • 外观编程,包括造型切换、显示、隐藏和层次关系设置;

  • 运算指令,包括比较运算、逻辑运算和余数运算;

  • 事件广播机制;

这是中级组的第4题,题目难度一般,完成时间在15分钟左右,难点在于如何实现小狗轮流绕过柱子的效果。

作品代码不多,但是涉及到的知识点不少,这就要求考生具备扎实的编程基础,能够灵活运用各知识点快速创作作品。

留给你一个小小的思考题,题目要求3秒内到达舞台右边缘,如果要精确到刚好3秒,该如何实现呢? 

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

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

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

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

相关文章

二、高通相机bringup 流程

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、相机Sensor 点亮相关的文件二、Sensor 驱动文件详解 一、相机Sensor 点亮相关的文件 1.1 Sensor 驱动XML以及CPP文件 Sensor 文件路径:…

基于stm32的超声波测距

文章目录 一、HC-SR04超声波测距模块说明1、产品特点2、电气参数3、HC-SR04超声波测距模块4、超声波时序图 二、 CUBEMX配置三、keil配置代码 模块选择: stm32f103c8芯片 HC-SR04超声波测距模块 一、HC-SR04超声波测距模块说明 1、产品特点 HC-SR04 超声波测距模块…

UNIX网络编程卷一 学习笔记 第十七章 ioctl操作

ioctl函数传统上一直作为那些不适合归入现有已定义类别的特性的系统接口。POSIX正在通过创建特定的包装函数来代替ioctl函数的某些功能,以取而代之的是那些已被POSIX标准化的函数。例如,Unix终端接口传统上使用ioctl函数访问,而POSIX为终端创…

CVE漏洞复现-CVE-2023-32233 NetFilter权限提升

CVE-2023-32233 NetFilter权限提升 Netfilter是Linux 内核中的网络数据包处理框架(iptables)通过各种规则和过滤器,基于数据包的来源、目标地址、协议类型、端口号等信息,控制网络流量和数据包的转发和处理具体,详情请…

灵活使用Postman环境变量和全局变量,提高接口测试效率!

目录 前言: 环境变量和全局变量的概念 环境变量和全局变量的使用方法 1. 定义变量 2. 使用变量 环境变量和全局变量的实例代码 变量的继承和覆盖 变量的动态设置 总结: 前言: Postman是一个流行的API开发和接口测试工具,…

RK平台使用i2c-tools调试

简介 i2ctool是嵌入式开发过程中调试i2c设备常用的工具包,其中比较常用的有:i2cdetect、i2cdump、i2cset、i2cget。 RK平台的SDK大部分默认都会带这个工具,如果没有编译进去或者找不到的情况下可以自己从网上下载编译进去:https:…

JavaScript中的Hook技术:特性、优点、缺点和使用场景

引言: 随着JavaScript的不断发展,开发者们正在寻找更灵活和可扩展的方式来修改或扩展现有的代码。其中一种广泛应用的技术是"Hook",它允许开发者拦截和修改现有的函数或方法的行为。本文将详细介绍JavaScript中的Hook技术&#xf…

Hive库表基本操作

Hive基本操作-库、表 规则语法 大小写规则: 1. hive的数据库名、表名都不区分大小写 2. 建议关键字大写 复制代码 命名规则: 1. 名字不能使用数字开头 2. 不能使用关键字 3. 尽量不使用特殊符号 复制代码 库操作语法 创建数据库 创建数据库的本质就是在hive…

javascript基础十六:Ajax 原理是什么?如何实现?

一、是什么 AJAX全称(Async Javascript and XML) 即异步的JavaScript 和XML,是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情况下,与服务器交换数据,并且更新部分网页 Ajax的原理简单来说通过XmlHttpRequ…

算法复杂度分析(一)

求第n个斐波那契数列 斐波那契数 0 1 1 2 3 5 数列默认从0开始 public static int fib1(int n) {if(n < 1) return n;return fib1(n-1) fib1(n-2);}public static int fib2(int n) {if(n < 1) return n;int first 0;int secend 1;for (int i 0; i < n-1; i) {int…

solr教程

一&#xff1a;安装配置 下载完成之后&#xff0c;解压solr文件&#xff0c;解压tomcat 1.1 在tomcat安装solr,并且建立solrCore 把solr5.5目录下的server/solr-webapp/webapp 重命名为solr,并且放置到tomcat/webapp的目录下。 打开tomcat/webapp/solr/WEB-INF/web.xml新建…

DevOps - (3)使用SOPS 和Terraform来加密/解密敏感信息文件

一&#xff1a;背景 每个人都想将自己的敏感数据以加密格式存储在一个安全的地方。例如我们的数据库的账号密码&#xff0c;不能以纯文本的方式来记录。让我们利用Mozilla SOPS以一种安全的方式实现它。SOPS支持将文件加密为二进制文件&#xff0c;除此之外&#xff0c;它还具…

LNMT架构之LNMT与nginx动静分离

LNMT架构之LNMT与nginx动静分离 目录 一、实验前提环境配置 &#xff08;一&#xff09;关闭防火墙&#xff0c;安装本地yum &#xff08;二&#xff09;部署tomcat &#xff08;三&#xff09;部署Mariadb &#xff08;四&#xff09;部署nginx 二、动静分离 步骤一&a…

RISC-V IDE MRS使用笔记(八):实现局域网下的远程调试功能

RISC-V IDE MRS使用笔记(八)&#xff1a;实现局域网下的远程调试功能 1.原理介绍 MRS调试时上位机与硬件的通信基于gdb客户端与服务端的连接。调试时&#xff0c;首先启动openocd以挂载gdbserver的服务到指定端口上。通信建立后&#xff0c;监听到界面操作后以gdb指令的形式发…

Springboot +spring security,OAuth2 四种授权模式概念

一.简介 这篇文章来讲下Spring Security OAuth2 四种授权模式。 二.什么是OAuth2 OAuth 2.0 是一种用于授权的开放标准&#xff0c;允许用户授权第三方应用程序访问他们的资源&#xff0c;例如照片、视频或其他个人信息。OAuth 2.0 提供了一些不同的授权模式&#xff0c;包括…

测试替身Test Doubles的5类型(Mockito)

测试替身Test Doubles的5类型(Mockito) 我们有一个名为 BankAccount 的类。 数据库用于存储和检索银行帐户信息。 我们想测试 BankAccount 中的逻辑&#xff0c;而不必担心它使用的底层数据库.由此类实现——它将 SQL 查询发送到数据库并返回其中包含的值。 测试替身Test Dou…

Django实现接口自动化平台(五)httprunner(4.x)介绍【持续更新中】

上一章&#xff1a; Django实现接口自动化平台&#xff08;四&#xff09;解决跨域问题【持续更新中】_做测试的喵酱的博客-CSDN博客 下一章&#xff1a; 一、httpruner介绍 1.1 背景&#xff1a; 之所以学习httpruner的用法&#xff0c;是要把httpruner嵌入我们的自动化平…

自动缩放Kubernetes上的Kinesis Data Streams应用程序

想要学习如何在Kubernetes上自动缩放您的Kinesis Data Streams消费者应用程序&#xff0c;以便节省成本并提高资源效率吗&#xff1f;本文提供了一个逐步指南&#xff0c;教您如何实现这一目标。 通过利用Kubernetes对Kinesis消费者应用程序进行自动缩放&#xff0c;您可以从其…

2023年陕西彬州第八届半程马拉松赛153pb完赛

1、赛事背景 2023年6月3日&#xff0c;我参加了2023陕西彬州第八届半程马拉松赛&#xff0c;最终153完赛&#xff0c;PB了5分钟。起跑时间早上7点30分&#xff0c;毕竟6月天气也开始热了。天气预报显示当天还是小到中雨&#xff0c;上次铜川宜君半马也是雨天跑的&#xff0c;阴…

lecory 波形二进制文件头(.trc)定义

1.文件头&#xff0c;从0字节开始 byte[] lecroy_trc_header new byte[]{0x23,0x39,0x30,0x30,0x32,0x30,0x30,0x30,0x31,0x34,0x34,0x57,0x41,0x56,0x45,0x44,0x45,0x53,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x45,0x43,0x52,0x4F,0x59,0x5F,0x32,0x5F,0x33,0x…