第11届蓝桥杯Scratch省赛真题集锦

news2025/1/19 17:00:40

编程题

第 1 题 问答题

对对碰

题目说明

编程实现

对对碰

两两相同的一共四张扣下的纸牌,每次先后翻开两张。如果两张一样就消失,如果两张不一样就重新扣下。当舞台上所有纸牌都消失,就过关了

.1)创建四个经牌角色,每张纸牌包含两个造型(正面和背面),其中两张牌面为小猫,另外两张牌面为小狗,牌的背面图案都一样;

具体要求:

 

2).当绿旗被点击,四张纸牌以牌面朝下的状态,以随机顺序出现在如图所示的四个位置(不能重叠),参考坐标: (-100,100),、

(-100,-50) 、(50,-50) ;

(50,100)

3.任意选择一张纸牌,点击可以翻开这张纸牌,每当翻开两张纸牌时就要判断这两张纸牌是否一样。如果一样,则这两张纸牌消失掉。如果不一样则两张纸牌重新扣回,等待下一次翻牌;

4,当复台上的四张牌全部消除,则游戏成功。小猫角色出现在复台中心位置,说出从开始出现纸院到经牌全部消除所用的游戏时间,持续2秒。并目将本次游戏时间加入列表“成绩单”的最后一项,此时列表“成绩单”还要显示在舞台上;

5).紧接着,小猫询问“是否排序?”,如果输入“是”,那么就以从小到大的顺序,将列表中的数据进行排序,程序结束; 

 

6). 再次点击绿旗,还可以进行下一轮游戏。注意:成绩单的数据要保留不要删除

 

 

代码也比较好理解,这里使用了“在列表的第x项前插入“指令,插入数字1的时候,只有一个位置,插入数字2的时候,有两个位置可选,插入数字3的时候,有3个位置可选,插入数字4的时候,则有4个位置可选,这样就可以得到一个随机顺序的列表,如图:

 

生成随机列表后,就可以摆放纸牌了,所以这里给经牌角色发送了“洗牌"的广播消息,当纸牌角色接收到广播后,就可以根据列表数据来设置角色位置了,以纸牌1为例,编写代码如下:

 

其它3张纸牌角色的代码基本相同,纸牌2对应的是列表中的第2项,经牌3对应的是列表的第3项,纸牌4对应的是列表的第4项。

2).翻牌配对

纸牌摆好之后,接下来就是翻牌配对了,需要注意这里的逻辑,默认情况下,4张牌都是扣上的,背面朝上。当点击某张纸牌时,此时只翻开一张,无需比较,当再翻开另外一张牌时,才需要进行比较。因此,这里需要创建一个变量,用来表示当前翻开的是第几张牌,并将其初始化值设为0,这个工作在列表初始化时已经完成了。每次点击纸牌时,将该变量加1,如果变量为2、就需要比较是否配对,然后再将变量重置为0。如果当前翻开的是第2张牌,自己的牌面很容易获取,那如何获取已翻开纸牌的牌面呢?还是需要借助变量,再创建一个变量“已翻开牌面”。用来记录已翻开纸牌的牌面。

如果两张已翻开的牌面相等,纸牌消失,将纸牌隐藏起来即可,如果牌面不相等,则纸牌又翻回去。这两个操作,都需要发送相应的广播消息给第一张已翻开的纸牌。

以细牌1角色为例,编写代码如下:

 

当前角色是经牌1,它的牌面是小猫,只有牌面为小猫的经牌才能和它配对,所以,配对成功的时候,发送的广播消息为“小猫消失“是专门针对牌面为小猫的角色的。同理,配对失败的时候,发送的广播消息是“小狗翻牌“,是专门针对牌面为小狗的角色的。当小猫角色接收到”小猫消失“广播后,隐藏自己即可,代码如下:

 

当小狗角色接收到”小狗翻牌“广播后,将纸牌换成背面造型即可,如图:

 

在翻牌的过程中,如果连续两次点击同一张牌,它也会配对成功并消失,这显然是不对的,怎么解决这个小bug呢?常见的方法就是使用一个私有变量,也就是这里的”可点击否“变量,默认为1,表示可点击,一旦点击之后,马上设置为0,表示不可点击。当两张纸牌比较完毕,牌翻回去了,再次将变量设置1,表示可以继续点击。为了记录配对数量,这里还使用了变量“配对数”,初始值为0,当纸牌配对成功消除时,配对数加1。纸牌2、纸牌3和纸牌4三个角色的代码和纸牌1基本相同,这里就不再列出了。3).记录成绩

每次游戏成功时,需要记录当前的时间,Scratch专门提供了一个计时器用于计时。在游戏开始时,也就是点击绿旗时,先将计时器清零,游戏结束时,将计时器的值保存起来即可。

要保存每一局游戏的成绩,我们可以创建一个列表“成绩单”,并且不需要初始化,当游戏结束时,将本局的时间插入到列表中即可,在小猫角色中编写代码如下:

 

每一次游戏过程中是不显示列表的,只有游戏结束后才显示列表,所以这里增加了隐藏列表和显示列表的指令在说出本局游戏花费的时间之后,会询问玩家是否需要对成绩单进行排序,如果玩家输入“是”,则需要排序。4).成绩单排序

排序是编程中最基本的算法,常见的排序算法有冒泡排序、选择排序、插入排序、快速排序和归并排序等。本题依然使用最简单的选择排序,在小猫角色中编写代码如下:

 

第 2 题 问答题

苹果摆一摆

题目说明

编程实现:

苹果摆一摆

有一堆大小为50、间隔为30的苹果是这样摆放的: 第一行1个,接下来的两行(第2-3行)每行2个,接下来的三行(第4-6行) 每行3个.....输入行数n,输出对应的苹果效果。

具体要求:

1).当绿旗被点击,舞台上只出现询问框;

2).根据提示输入行数n,如果,如果n满足条件 (0< n <= 10) ,就要在舞台上画出n行苹果所呈现的效果; 

 

3).如果n满足条件n >10,由于苹果太多装不小,此时不再呈现苹果效果,但是小猫要出现在舞台上,并正确说出最后一行苹果的个数;

 

4).如果输入的行数n s<=0,应该重新询问,直到满足n >0,然后呈现出与之对应的效果 

简要说明如下:

0.玩家输入的数字有可能小于0,因此这里使用了条件循环,如果回答小于等于0,则重复询问,直到回答>0;

2.如果输入的数字>0,则使用变量n将回答保存起来,然后计算苹果数量并构造列表,这里使用了自制积木,具体的代码实现。将在第2步讲解;

图.由于舞台大小有限,所以需要对n的值进行判断,如果n>10,就直接说出最后一行的苹果数,否则就需要绘制苹果,这里使用了“如果...那么...否则“指令来处理两个不同的分支,并给苹果角色发送了”绘制苹果“的广播消息。2).计算苹果数量,构造列表

根据前面的思路分析,我们采用逆向思维来计算每一行对应的苹果数量。先将创建好的“苹果“列表清空,然后创建一个计数器变量”“

让i从1开始,并重复次向列表中插入i的操作。这就意味着,当为1时,向列表中插入1个1,当为2时,向列表中插入两个2,当伪3时,向列表中插入3个3,依此类推....然后将这个过程重复执行n次即可,代码如图所示:

 

输入数字8,测试一下,效果如下:

 

发现问题了吗,每一行对应的苹果数量是对的,但是列表一共有36项,这是怎么回事呢?原因很简单,因为这里使用了双重循环,当n=8的时候,外层循环执行了8次,而内层循环,分别执行了1次、2次、3次.....8次,所以急的循环次数是1+2+3+4+5+6+7+8=36。

实际上,我们只需要构造8项数据即可,那什么时候结束循环呢?很简单,当列表的项目数=8时,结束循环即可,不过要注意,判断需要放在内层循环中才对,代码如下所示:

 

 

第 3 题 问答题

英雄之盾

题目说明

背景信息:

每个孩子心中都会有一个成为英雄的梦想,为了和平与正义而守护心中的白色象牙塔,今天让我们一来画出超级英雄的守护之盾吧!

 

编程实现:

绘制一面英雄之盾。

 

具体要求:

1).开始程序后,舞台背景为黑色;

2).瞬间画出盾牌除五角星之外的圆环部分 (盾牌直径为300)3).缓慢画出除圆环部分之外的白色实心五角星。

提示

1).全程禁止使用“编辑”中的“加速模式”

2).位置及大小,大致相同即可;

3).开启计时器,程序在30秒内执行完

 

 

2).绘制圆环有些同学看到圆环开始有些犯难了,实际上非常简单,因为圆环是实心的,可以看成是一个点,只不过这些点比较大而已,因此,我们只需要将画笔粗细设置得大一些,然后落笔点一下即可。

先来绘制最底层红色圆环,代码如下:

 

其它3个圆环,绘制方法是完全一样的,只需要将画笔设置为不同粗细,并设置为相应的颜色即可,这里就先不列代码了

3).绘制五角星

绘制实心五角星,这是本作品的难点,题目也没有给出任何提示信息。我们要搞清楚五角星的角度关系,如图所示:

 

五角星的每个内角都是36度,需要注意的是在使用Scratch画笔绘制五角星的时候,要转的角度并不是44度,而是180 - 36 = 144度.如果只是画一颗五角星的轮康,我们只需要循环5次移动和转向就可以了,但这里要画的是一颗实心五角星。一个比较巧妙的办法就是,选择一个点,作为五角星的中心,从这个点开始,每画一条线,就将线条变长一点,然后旋转144度,直到线条长度等于设定长度为止。

所以,这里需要新建一个变量,将其命名为”长度",将长度设置为1,然后重复执行移动和右转指令,每循环一次,将长度增加1,直到长度大于84,代码如下:

 

 

 

 

 

第 4 题 问答题

海底世界

题目说明

编程实现

海底世界

海底世界,近处有螃蟹,后面有一个水母游来游去,远处有各种小鱼游过.

具体要求:

1),创建背景Underwater1,创建角色Crab、Jelvfish、Fish,螃蟹离我们最近,后面是水母,远处是小鱼;2).螃蟹大小为200,在舞台最下方,全程静止不动;

3).水母大小为100,初始方向为45,在舞台内不停的移动,碰到边缘就反弹;

4).舞台左上区域的随机位置不停地出现小鱼,小鱼(随机造型) 一直向右移动,移到舞台右侧消失(参考值:大小为50,y坐标范围0-180,速度为

5,克隆间隔0.2秒)。

 

 

这里使用了“移到最前面”指令,可以确保螃蟹位于所有角色的最上方。

2).水母角色

水母角色在舞台上来回移动,当碰到舞台边缘时,反弹回来即可,代码如下:

简要说明两点:0.默认情况下,角色是面向90度,即面向右方,这样螃蟹只会左右来回移动,为了让螃蟹可以斜着走,这里将初始方向设置为45度当然,你也可以设置为其它的角度;

2.角色默认的旋转方式是任意旋转,在这种模式下,螃管碰到舞台边缘,就会头朝下,只需要将旋转方式设置为左右翻转,螃蟹就不会上下翻转了

3).小鱼角色小鱼角色需要克隆,在Scratch中,克隆一般分两步进行,第一步是利用本体生成克隆体。但是生成的克隆体是静止不动的,如果要让克隆体角色动起来,这就需要第二步了,即控制克隆体。

先来实现第一步,先将小鱼角色的大小设置为50,同时将本体隐藏起来,然后每陪0.2秒克隆一个小鱼,代码如下·

 

 

 

说明两点:

1.很多同学在判断是否到达舞台右边缘时,喜欢使用“碰到舞台边缘”,如果克隆体的初始位置没有挨着舞台左边缘,这么写也是可以的。如果克隆体的初始位置挨着舞台左边缘,就不能这么写了,否则克隆体一显示,立刻就删除了,最好的方法就是判断x坐标是否大于某个值,比如240;

2.我们将螃蟹角色移到最前面,小鱼角色移到最后面,这样就可以让水母角色处在中间层了。

 

 

第 5 题 问答题

王子变青娃

题目说明

程实现:

王子变青娃。

勇敢的王子Phnce为了救公主,来到了邪恶巫师Wizard Gi的森林Woods。巫师施展法术将王子变成青蛙,王子念动咒语解除魔法变回王子,巫师逃

走。

具体要求:

1).运行程序,角色和背景如图所示:

2).按下空格键,巫师先说,“变变变!”2秒,王子变成青蛙;

 

3).青蛙心里倒计时10秒(使用思考块) ,

 

4).魔法解除,王子变回人类。巫师说“快跑”2秒,然后消失,程序结束。

 

 

2).王子变成青蛙又变回王子

水母绿旗被点击时,青娃王子角色显示的是王子造型,位于舞台右侧,切换到王子角色,编写代码如下:

 

当接收到”变身“广播消息后,王子立刻变成青娃角色,接下来在心里倒计时10秒,这需要创建一个变量,从10开始,每隔1秒减1,同时使用“思考“指令显示倒计时效果。倒计时结束,从青娃造型变回到王子造型,然后再给女巫发送一个"逃跑"的广播消息,代码如下:

 

需要注意的是,这里使用的思考指令,它会一直显示,所以在循环结束之后,增加了一个思考空白指令,将显示的内容清除掉。

3).女巫逃跑

小女巫在接收到”逃跑“广播消息后,说快跑2秒钟,然后消失,切换到女巫角色,编写代码如下:

 

第6题问答题

自我介绍

题目说明

编程实现:

自我介绍

创建一个背景,再创建一个角色 (角色与背景任意》,向我们的评委老师介绍一下你自己吧.

具体要求:

1).程序运行,舞台呈现背景,1秒后角色完整出现在舞台中心区域;

2).角色依次说出自己的姓名、年龄和说一句鼓励的话2秒(输入自己真实的姓名及年龄);

 

3).说完后,角色2秒内移到舞台右侧边缘,程序结束

 

这里有3个说话指令,后面的指令必须在前一个指令执行完之后才能继续执行,3句话说完一共花了6秒钟,然后从舞台中心滑行到舞台右边缘。

在Scratch中,实现角色的移动,通常有如下三种方式:

面向方向 + 移动10步 + 重复执行

将x坐标增加10 + 重复执行

在1秒内滑行到x,y

其中第一种方式,需要3个指令,第二种方式需要两个指令,第二种方式则只需有一个指令。在本题中,由于角色运动的终点确定,因此使用第三种方式最简单。

 

 

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

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

相关文章

linuxOPS基础_Linux文件管理

Linux下文件命名规则 可以使用哪些字符&#xff1f; 理论上除了字符“/”之外&#xff0c;所有的字符都可以使用&#xff0c;但是要注意&#xff0c;在目录名或文件名中&#xff0c;不建议使用某些特殊字符&#xff0c;例如&#xff0c; <、>、&#xff1f;、* 等&…

表单重复提交:

1. 表单重复提交原因 当用户提交完请求&#xff0c;浏览器会记录最后一次请求的全部信息。用户按下功能键F5&#xff0c;就会发起浏览器记录的最后一次请求。如果最后一次请求为添加操作&#xff0c;那么此时刷新按钮就会再次提交数据&#xff0c;造成表单重复提交。 2. 表单…

Hive优化

Hive的本质是MapReduce&#xff0c;优化其实大部分是对mapreduce的优化 hive优化目标&#xff1a;①横向增加并发&#xff0c;②纵向减少依赖 //开启mapjoin&#xff0c;默认为 true • set hive.auto.convert.join true; //开启map端数据聚合 • hive.map.aggrtrue&…

API的应用范围主要有哪些方面?

API&#xff08;Application Programming Interface&#xff09;即应用程序接口&#xff0c;它是一组规则和工具&#xff0c;通过 HTTP 协议将两个软件应用程序之间的通信连接起来。API 的设计可以使不同应用程序的数据和功能进行交互和共享&#xff0c;从而促进了各种应用程序…

对讲机在未来会有更好的发展吗?

对讲机经过几十年的发展&#xff0c;目前在很多领域都有着广泛的应用。那么在未来对讲机还会有更好的发展吗&#xff1f; 对讲机未来会有更好的发展吗 下面河南宝蓝小编根据目前的发展情况做一些猜想&#xff1a; 一、更高的频率范围 目前对讲机所使用的频率范围主要是在VHF…

Spring的作用域和生命周期

目录 1.Bean的作用域 2.Bean的作用域的分类 3.设置作用域 4.Spring的执行流程&#xff08;生命周期&#xff09; 5.Bean的生命周期 1.Bean的作用域 lombok &#xff08;dependency依赖&#xff09; 是为了解决代码的冗余&#xff08;比如说get和set方法&#xff09;那些构造…

平衡二叉树的插入,删除以及平衡调整。

一&#xff0c;平衡二叉树插入失衡情况及解决方案 由于各种的插入导致的不平衡&#xff0c;每次调整都是最小不平衡子树。 LL&#xff1a;由于在结点A的 左孩子的左子树 插入结点导致失衡。 右单旋&#xff1a;①将A的 左孩子B 向右上旋转 代替A成为根节点       ②将A结…

从零开始:使用低代码平台开发OA系统的教程

随着中小型企业持续拥抱数字化转型&#xff0c;对支持业务流程的定制软件应用程序的需求增加。而办公自动化(OA)系统是一个有助于自动执行重复性任务并简化工作流程的系统。按照传统的开发模式&#xff0c;开发OA系统可能既耗时又昂贵&#xff0c;需要经验丰富的开发人员从头开…

ESP32-IDF MQTT连接aws亚马逊云

ESP32-IDF MQTT连接aws亚马逊云 文章目录 ESP32-IDF MQTT连接aws亚马逊云1. 云端配置2. 设备端配置3. 总结 1. 云端配置 登录AWS&#xff0c;地址: https://aws.amazon.com/ 选择IOT core 服务 创建云端设备&#xff0c;点击连接一台设备 进行云端设备创建&#xff0c;按照流…

1020. 飞地的数量

1020. 飞地的数量 C代码&#xff1a;DFS void dfs (int** grid, int x, int y, int m, int n) {if (x < 0 || x > m || y < 0 || y > n || grid[x][y] 0) {return;}grid[x][y] 0;dfs(grid, x 1, y, m, n);dfs(grid, x - 1, y, m, n);dfs(grid, x, y 1, m, n);…

Activiti7学习笔记

Activiti7学习 工作流相关概念 工作流 工作流(Workflow)&#xff0c;就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程&#xff0c;从而实现某个预期的业务目标&#xff0c;或者促使此目…

new bing 初体验:辅助看论文刚刚好

1. new bing使用条件 &#xff08;1&#xff09;安装Microsoft edge的dev版本 https://www.microsoft.com/zh-cn/edge/download?formMA13FJ &#xff08;2&#xff09;浏览器侧栏打开 Discover (3) 进入new bing 页面 侧栏展示 new bing 如果这一步&#xff0c;没有聊天功能…

公司新来了个一年测试经验拿15K的,发现是个00后卷王····

个个都说想躺平了&#xff0c;可是有一说一&#xff0c;该卷的还是卷。 这不&#xff0c;前段时间我们公司来了个00后&#xff0c;才工作一年&#xff0c;跳槽到我们公司起薪15K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了…

【数组的深刻理解】

#include<stdio.h> #define N 10 int main() {int a[N] { 0 }; //定义并初始化数组return 0; } 概念&#xff1a;数组是具有相同数据类型的集合。 数组的内存布局 #include<stdio.h> int main() {int a 10;int b 20;int c 30;printf("%p\n", &a…

【人工智能】距离空间(最基本的数学模型)

目录 一、说明 二、度量空间的意义 2.1 基于几何的定义 2.2 更抽象的距离问题 三、更广泛的距离空间定义 3.1 非物理意义的距离空间 3.2 代数学距离的定义 3.3 形形色色的距离模型 四、曼哈顿距离 4.1 曼哈顿距离定义 4.2 举个实际例子 4.3 下面证明&#xff0c;…

电话号码的字母组合--狗屎内容勿看

1题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits "23" 输出…

Linux高级---k8s三种探针readinessProbe、livenessProbe和startupProbe

文章目录 一、POD状态1、POD常见的状态2、POD重启策略 二、就绪、存活两种探针1、探针介绍2、livenessProbe3、readinessProbe4、就绪、存活两种探针的区别5、**就绪**、**存活**两种探针的使用方法 三、LivenessProbe探针1、通过exec方式做健康探测2、通过HTTP方式做健康探测3…

【LeetCode】HOT 100(1)

题单介绍&#xff1a; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合初识算法与数据结构的新手和想要在短时间内高效提升的人&#xff0c;熟练掌握这 100 道题&#xff0c;你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

python基于Vue的web信息收集程序设计

本信息收集程序设计以Django作为框架&#xff0c;B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块&#xff1a;个人中心、用户管理、上传信息管理、分类管理、分类归档管理等模块&#xff0c;通过这些模块的实现能够基本满足用户信息收集程序设计的操作。 好…

Dubbo源码解析一服务暴露与发现

Dubbo 服务暴露与发现 1. Spring中自定义Schema1.1 案例使用1.2 dubbo中的相关对象 2. 服务暴露机制2.1 术语解释2.2 流程机制2.3 源码分析2.3.1 导出入口2.3.2 导出服务到本地2.3.3 导出服务到远程(重点)2.3.4 开启Netty服务2.3.5 服务注册2.3.6 总结 3. 服务发现3.1 服务发现…