热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

瞄准镜第12届蓝桥杯Scratch选拔赛真题精选

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第82讲。蓝桥杯选拔赛每一届都要举行4~5

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第82讲。

蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。

第12届蓝桥杯青少年组第6次选拔赛于2021年3月27日举行,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

瞄准镜,本题是2021年3月27日举行的第12届蓝桥杯Scratch选拔赛真题编程第2题,初级组和中级组都有此题,题目要求编程模拟瞄准镜效果,让瞄准镜跟随鼠标移动,当瞄准镜中心移到水果上时,点击鼠标水果消失。

先来看看题目的要求吧。


一.题目说明

编程实现:

瞄准镜跟随鼠标移动,当瞄准镜中心移到水果上时,点击鼠标水果消失。

具体要求:

1). 点击绿旗时,舞台出现要求的角色与背景;

2). 所有水果在舞台中随机移动;

3). 瞄准镜跟随鼠标移动;

4). 当瞄准镜中心移到其中一个水果上时,点击鼠标被击中的水果消失;


二.思路分析

本题一共有4个角色,分别是瞄准镜,apple、banana和watermelon,如图所示:

其中瞄准镜角色跟随鼠标移动,三个水果角色则在舞台上来回随机移动,当瞄准镜中心移到水果上时,点击鼠标水果消失。

这里的重点是如何判断是否瞄准了,我们不能直接使用是否碰到角色,而是应该判断瞄准镜和水果两个角色造型中心的距离,当距离小于某个值时,可以近似的认为瞄准了。

在侦测模块中,专门提供了一个指令,用于获取到某个角色的距离,如图:


三.编程实现

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


  • 瞄准镜跟随鼠标移动

  • 水果角色在舞台上随机移动

  • 消灭水果

1. 瞄准镜跟随鼠标移动

这一步非常简单,直接使用“移到鼠标指针”指令即可,在瞄准镜角色中,编写代码如下:

2. 水果角色在舞台上随机移动

让实现角色在舞台上随机移动,最简单的莫过于直接使用“移到随机位置”指令了。代码如下所示:

这里的“等待0.5秒”是让角色每隔0.5秒变化一次位置。

对于这种方式,有的同学可能会觉得角色出现得太突然了,能不能让角色从随机位置,以随机方向来回移动呢?

完全可以,首先将角色移到舞台随机位置,然后设置一个随机方向,接着让角色重复移动,当碰到舞台边缘时反弹即可,其代码如下:

两种方式都符合题意,代码也比较简单,你可以任选一种。三个水果角色的代码基本一样,就不一一列出了。

3. 消灭水果

接下来就需要判断是否瞄准水果了,这部分代码写在哪个角色中呢?当两个角色有交互功能时,哪个角色的状态有变化,代码就写在哪个角色中。很明显, 当击中水果时,水果要消失,所以代码要写在水果角色中。

当按下鼠标时,可以先计算出两个角色之间的距离,当距离小于20的时候,我们认为瞄准了,此时将水果隐藏起来,停止当前脚本即可,以apple角色为例,在重复执行指令中,增加如下代码:

简单说明如下:

1). 在水果角色中获取瞄准镜角色的坐标,使用了侦测模块中的”舞台的背景编号“,这是一个非常重要的指令,专门用于在一个角色中获取其它角色的信息,包括坐标、方向、大小、造型变化和造型名称等;

2). 两个角色的坐标,孰大孰小,无法区分,二者相减可能会出现负数,因此这里使用了”绝对值“指令,确保距离是正数;

3). 要同时计算水平和垂直两个方向上的坐标差,二者是逻辑与的关系。

另外两个水果角色也要编写相同的代码,这里就不再赘述了。


四.总结与思考

本题难度系数为3,积木块数量30个左右(去掉重复代码) ,涉及到的知识点主要包括:


  • Scratch运动编程,包括角色随鼠标移动和随机运动;

  • 随机在编程中的运用,包括随机数和移到随机位置;

  • 如何获取其它角色的信息;

  • 绝对值指令的作用及使用;

  • 逻辑与运算的作用和规则;

  • 条件嵌套指令的使用。

本题相对比较简单,重点是如何计算两个角色之间的距离,需要说明的是本作品中的距离计算只是近似值。数学中精确计算两点之间的距离,通常使用的是欧式距离公式,有兴趣的同学可以去查阅相关资料,并编程实现。

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。

需要素材和源码的,可以联系本人,或者移步至同名wx号。


推荐阅读
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 距离11月的软考还有不到五个月的时间,考试将于11月5日至6日举行。许多朋友对软考的具体情况还不太了解:它是什么?有何用途?本文将为你详细解答。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 如何查找和管理计算机中的C盘临时文件
    本文详细介绍了如何在计算机中找到和管理C盘的临时文件,包括其具体路径、环境变量设置方法以及清理这些文件对系统性能的影响。对于希望优化系统性能和释放磁盘空间的用户来说,这是一篇非常有价值的参考。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
author-avatar
万象新动HR
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有