当前位置: 首页 > news >正文

海底世界-第16届蓝桥第4次STEMA测评Scratch真题第5题

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

第16届蓝桥第4次STEMA测评已于2025年1月12日落下帷幕,编程题一共有5题(初级组只有前4道编程题),分别如下:

  • 太空遨游

  • 阿拉丁神灯

  • 滚动的足球

  • 完美的图形

  • 海底世界

海底世界,本题是2025年1月12日举行的蓝桥STEMA测评Scratch编程中级组编程第5题。题目要求编程创作海底世界作品,点击绿旗,等待用户输入一个随机整数,然后会出现对应数量的鱼,按下空格键,左边的鱼向左移动,右边的鱼向右移动,到达舞台边缘后消失。

先来看看题目的要求吧。

一.题目说明

编程实现:

海底世界。

具体要求:

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

图片

2). 1秒后,小鱼说“请输入1~20的整数”,同时舞台下方出现输入框,如图所示;

图片

3). 输入完成后,小鱼消失,在舞台上出现与输入整数相同数量的鱼;

4). 出现的鱼的种类和位置是随机的,所有鱼不能碰到舞台边缘,鱼之间也不能相互碰撞;

例如:输入6后的效果如下:

图片

5). 鱼出现后,按下键盘空格键,此时所有x坐标小于0的鱼面向左侧,所有x坐标大于等于0的鱼面向右侧,如图所示;

图片

6). 1秒后,所有x坐标小于0的鱼向左移动,所有x坐标大于等于0的鱼向右移动(能看到移动的过程);

7). 当鱼移动到舞台的左边缘或右边缘后消失。

评分标准:

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

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

  • 12分:满足“具体要求”中的3);

  • 20分:满足“具体要求”中的4);

  • 12分:满足“具体要求”中的5);

  • 12分:满足“具体要求”中的6);

  • 12分:满足“具体要求”中的7)。

二.思路分析

本题只有1个角色,就是海底生物,如图所示:

图片

虽然只有一个角色,但是它有4个造型,分别表示不同的鱼儿,如图:

图片

本题考查的知识点包括克隆编程、运动编程和条件侦测等。

首先是克隆,在玩家输入1~20之间的数字后,立刻生成对应数量的克隆体。克隆本身比较简单,但这里有一个特殊要求,所有的鱼儿不能碰到到舞台边缘,且鱼儿之间也不能相互碰撞。

关于这个问题,在之前的真题中多次出现,比如:

  • 《矿工挖宝-第14届蓝桥杯国赛Scratch真题初中级组第4题》

  • 《栽花-第15届蓝桥第4次STEMA测评Scratch真题精选》

  • 《消除数字球-第15届蓝桥省赛Scratch初级组真题第5题》

解决这个问题的关键是要掌握超平老师总结的”借鸡生蛋“模型。

图片

所谓借鸡生蛋,是指借助其它角色,拖出一个”碰到海底生物“的指令,将其复制到海底生物角色中,这样就可以在海底生物角色中检查是否碰到其它鱼儿了。

其次是按键检测问题,检测按键问题通常有如下两种方式:

  • 事件模块中的“当按下空格键”指令;

  • 侦测模块中的“按下空格键”指令; 

前者比较简单,但是不受绿旗控制,任何时候按键空格键都会执行代码;后者则更加灵活,可以结合“等待条件”指令,确保只能在特定的时候按键才有效,同时还可以控制按键的次数,尤其是只需要单次按键的场景,比如本题。

解决了这克隆和按键检测这两个核心问题,其它的就比较简单了。

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

三.编程与实现

根据上面的思路分析,我们分3步来编写代码:

  • 生成对应数量的克隆体;

  • 设置克隆体的位置和造型;

  • 鱼儿的移动;

1. 生成对应数量的克隆体

根据前面的思路分析,在海底生物角色中编写代码如下:

图片

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

1). 角色的初始化一定要设置,包括位置、方向和显示;

2). 用户输入的数字可以通过“回答”指令来获取,这里不需要处理非数字的情况,实际上,如果输入的不是大于0的数字,循环是不会执行的。

2. 设置克隆体的位置和造型

在随机鱼儿位置的时候,一旦碰到其它鱼儿或者舞台边缘的时候,会重新随机一个位置,直到没有碰到任何鱼儿和舞台边缘,这是一个循环过程。

为了瞬间设置好鱼儿的位置,我们可以使用一个自制积木来编写代码,如下所示:

图片

代码不多,说明4点:

1). 定义自制积木的时候请勾选“运行程序时不刷新屏幕”选项;

2). 鱼儿一共有4个不同的造型,直接在1到4之间取随机数即可;

3). 要先将克隆体显示出来,再设置其位置,这样才能检测是否碰到其它角色或舞台边缘;

4). 鱼儿角色中没有“碰到海底生物”指令,需要借助其他角色,可以先添加一个小猫角色,拖出“碰到海底生物”指令, 复制到鱼儿角色中,然后删除小猫角色,这就是借鸡生蛋模型。

然后在“当作为克隆体启动时”指令中调用自制积木就可以了,代码如下:

图片

这样就可以确保克隆出来的鱼儿不会碰到舞台边缘,也不会碰到其它鱼儿了。

3. 鱼儿的移动

在“当作为克隆体启动时”代码块中,继续编写代码如下:

图片

代码不多,说明两点:

1). 此处使用“等待条件” + “按下空格键”指令,可以确保只需要按下一次空格键,效果非常棒;

2). 在按下空格键之后,左边的鱼儿面向左边,右边的鱼儿面向右边,直接使用“移动10步”指令,就可以让鱼儿各自向左边和右边移动了,一旦碰到舞台边缘,循环结束,鱼儿消失。

至此,整个作品就创作好了。

四.总结与思考

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

  • 问答指令;

  • 克隆编程;

  • 自制积木;

  • 运动编程;

  • 按键检测;

  • 碰撞检测的技巧;

这是本次stema测评的第5题,也是中级组的最后一题,初级组没有此题,难度中等,完成时间15分钟左右。

本作品的关键点有两个,一是使用借鸡生蛋模型来检测鱼儿是否碰到其它鱼儿,二是使用“等待条件”+“按下空格键”组合指令来检测是否按下空格键。

    超平老师给你留一道思考题,这里限定玩家输入的数字范围是1~20,但是你也可以输入更大的数字,或者非数字,如果要增加一个提示功能,当玩家输入错误的时候,给出提示并重新输入,该怎么做呢,赶紧试一下吧。

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

    相关文章:

  • JVM指令手册:深入理解字节码执行机制
  • 每日c/c++题 备战蓝桥杯(P2392 kkksc03考前临时抱佛脚)
  • adb devices 报权限错误
  • 深度解析丝杆升降机维护保养技术:从原理到实践,保障工业设备高效运行​​
  • Coding Practice,48天强训(25)
  • 分布式GPU上计算长向量模的方法
  • 2.脚本文件初识
  • python 如何把元组拆成几个包并输出
  • 智诚科技苏州SOLIDWORKS授权代理商的卓越之选
  • 单片机-89C51部分:6、按键
  • 组件之间的信息传递的四种方法!!【vue3 前端】
  • 自然语言处理之机器翻译:Statistical Machine Translation(SMT)的评估方法解析与创新实践
  • 从零开始开发一个简易的五子棋游戏:使用 HTML、CSS 和 JavaScript 实现双人对战
  • 3、Linux操作系统下,linux的技术手册使用(man)
  • 杨洋出席青岛啤酒白啤品牌活动 共赴生活美学之旅
  • 高自由度与多功能指尖设计:Allegro灵巧手V5(4F Plus)的技术亮点
  • CSS元素动画篇:基于当前位置的变换动画(四)
  • 技术分享 | Oracle-RAC修改IP信息
  • 【博客系统】博客系统第一弹:博客系统项目配置、MyBatis-Plus 实现 Mapper 接口、处理项目公共模块:统一返回结果、统一异常处理
  • 如何将数据输入到神经网络中
  • 国家发改委答澎湃:力争6月底前下达2025年两重建设和中央预算内投资全部项目清单
  • 人民日报社论:做新时代挺膺担当的奋斗者
  • 四川甘孜州白玉县发生4.9级地震,震源深度10千米
  • 上海经信委:将推动整车企业转型,加强智能驾驶大模型等创新应用
  • 秦洪看盘|短线热点降温,A股回落整固
  • 中科院新增三名副秘书长