• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

自动驾驶-第10届蓝桥杯Scratch省赛真题第5题

武飞扬头像
超平的编程课
帮助1

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

第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

自动驾驶,本题是第10届蓝桥杯Scratch省赛真题编程第5题,初级组和中级组都有此题,题目要求考生使用Scratch编程模拟小汽车自动停车效果,小车从舞台左侧向右行驶。当小车快要碰到小猫时,小车能自动停止移动,而小猫被吓到了。

先来看看题目的要求吧。

一.题目说明

编程实现:

将舞台背景改为“blue-sky”背景,在舞台上设置 1 个小车“Car-Bug”角色,并保留默认的小猫角色。

小车从舞台左侧向右行驶。当小车快要碰到小猫时,小车能自动停止移动,而小猫被吓到了。

具体要求:

1、每次点击绿旗后,舞台背景和小车角色的初始位置都要如下图所示,小猫角色的 x 坐标值为从 100 到200 范围内的一个随机数值,y 坐标参考图中位置来大致设置;

学新通

2、小车开始自动向右行驶。小猫的位置则始终保持不动;

3、小车在行驶到车头距离小猫一个车身范围以内时,小车能自动停止。视觉观察时,小车不能碰到小猫,两者之间留有一段距离。如下图所示:

学新通

4、在小车停下后,小猫说“哇!!!”2 秒钟,程序结束。

将程序保存到桌面,命名为“5.sb2”。

评判标准:

  • 10 分:每一次点击绿旗后,小车在舞台左边,而小猫的位置则是随机的(需要多次点击绿旗来验证随机位置);

  • 40 分:在 10 分的基础上,小车在行驶到距离小猫一个车身范围内停止。但是,以下两种情况均不符合要求:

 1)小车碰到小猫,如下图所示:

学新通

2)小车停下时,车头距离小猫的距离明显大于一个车身宽度,或者不论小猫的位置如何变化,车停下的位置都相同(即小车停下的位置并没有根据小猫的位置随机变化而变化),如下图所示:

学新通

  • 50 分:完全符合题意,即在 40 分的基础上,实现了小车停下后,小猫说“哇!!!”2 秒钟。

二.思路分析

本题只有两个角色,分别是小猫和小汽车,小猫的效果比较简单,一是设置好位置,二是在小汽车停下来后,说一声”好!!!“。

这里的重点是小汽车,小汽车从舞台左边向右移动,当移到距离小猫一定位置时自动停止。由于小猫的位置是随机的,所以小汽车停下来的位置也是随之变化的,那如何确定小猫的位置呢?

我们可以换一个思维,小汽车停止的位置随小猫位置的变化而变化,那有没有不变的量呢?仔细想想,可以发现它们二者之间的距离是不变的,这个距离是小汽车的一个车身长度。

在Scratch中的侦测模块中,有一个指令”到xx的距离“可以获取当前角色到某个角色的距离,如图:

学新通

如此一来,问题就变简单了,当小汽车到小猫的距离小于某个值时,停止移动即可。 

三.编程实现

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

  • 小猫随机位置

  • 小汽车行驶并自动停车

  • 小猫说哇

1. 小猫随机位置

根据题目描述,小猫角色的 x 坐标值为从 100 到200 范围内的一个随机数值,我们使用随机数指令设置其位置即可,代码如下:

学新通

由于舞台较小,这里将小猫的大小设置为75,这个不是必须的,你可以设置任意大小。

2. 小汽车行驶并自动停车

小汽车从舞台左边开始向右移动,需要先设置好初始位置,然后重复执行右移,很明显,此处使用直到循环最为简单,代码如下:

学新通

简单说明一下,这里将小车设置为50,此时一个车身的距离大概是120步,你可以根据实际情况来确定这个距离。当小车自动停止后,给小猫角色发送了一个”停车“的广播消息。

3. 小猫说哇

小猫在接收到”停车“广播消息后,说了一声哇,切换到小猫角色,编写代码如下:

学新通

至此,整个代码就编写完毕,你可以反复执行程序,测试一下自动驾驶功能,是不是还挺智能的。

四.总结与思考

本题难度系数为5,积木块数量在16个左右,涉及到的知识点主要包括:

  • 熟悉Scratch舞台坐标系,并快速确定角色的坐标;

  • 随机数指令的运用;

  • 外观编程,包括设置大小和说话指令;

  • 重复直到循环;

  • 侦测角色到另一个角色之间的距离;

  • 事件广播机制。

本题的代码并不多,难点在于如何在变化的量中找到不变的量,换句话说,就是要抓住问题的本质,这是一个非常重要的思维模型,在编程时会经常用到这种思维,这也是为什么说编程可以提升逻辑思维能力的原因之一。

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgacaib
系列文章
更多 icon
同类精品
更多 icon
继续加载