热门标签 | 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号。


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 作为一名正在读EE专业的研一学生,面临选择一门适合未来职业生涯的编程语言的问题。目前只会使用C++和Matlab,但发现C++的使用率逐渐减少。对于选择哪门语言进行深入学习还没有明确方向,希望选择一门使用广泛且不会被短期淘汰的语言。提到了Phyton的简洁性,但担心从零基础学习起会有困难。同时也担心选择了C++后语言会被淘汰,以及编程效率低的问题。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 解决PR倒放后视频卡顿的方法及操作步骤
    本文介绍了解决PR倒放后视频卡顿问题的方法,通过标记入点和出点,并进行渲染,可以有效解决视频卡顿的情况。详细的操作步骤包括:继续播放视频,标记入点和出点,选择渲染效果,等待渲染完成,清除标记等。通过理论与实践的结合,可以更好地帮助大家解决PR倒放后视频卡顿的问题。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 给定一个二维平面上的一些点,通过计算曼哈顿距离,求连接所有点的最小总费用。只有任意两点之间有且仅有一条简单路径时,才认为所有点都已连接。给出了几个示例并给出了对应的输出。 ... [详细]
  • 测绘程序设计Excel度分秒转换模板附代码超实用版
    本文介绍了测绘程序设计Excel度分秒转换模板附代码超实用版的相关知识,包括准备工作、编写表达式和注意事项。在实际工作中,将GPS实测的经纬度度转换为度分秒是常见需求,本文提供了在Excel中快速进行转换的方法,以提高工作效率。 ... [详细]
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社区 版权所有