行驶的汽车-第14届蓝桥杯国赛Scratch真题初中级组第1题

行驶的汽车,本题是2023年5月28日上午举行的第14届蓝桥杯国赛Scratch图形化编程初中级组真题第1题,题目要求编程实现行驶的汽车效果 。点击绿旗后,汽车从远方道路一侧驶来并逐渐变大,直至从画面中消失。先来看看题目的要求吧。

一.题目要求

编程实现:

行驶的汽车。

具体要求:

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

2). 汽车从远方道路一侧驶来并逐渐变大(能看到变大的过程);

3). 汽车由远及近驶来直至从画面中消失。

评判标准:

  • 3分:满足”具体要求”中的1);
  • 8分:满足”具体要求”中的2);
  • 9分:满足”具体要求”中的3)。

二.作品预览

在编程之前,先来看一下作品的完整效果吧:

 

三.思路分析

本题只有一个角色,就是汽车,如图所示:

本题的功能比较简单,主要包括如下两点:

  • 汽车从舞台中间向左下角移动;
  • 汽车慢慢变大;

其中,汽车慢慢变大的实现方式只有一种,就是在重复中执行“将大小增加10”指令。而汽车的移动,可以有如下三种实现方式:

  • 使用“面向90度” + “移动10步”指令;
  • 使用“将x增加10” + “将y增加10”指令;
  • 使用“在1秒内滑行到x,y”指令;

三种方式都可以实现本作品的要求,不过需要处理好移动和变大的速度,确保效果和视频给出的效果基本一致(考试时,提供了演示视频)。

接下来,我们进入具体的实现环节,并分别使用3种方式来编写程序。

四.编程实现

根据题目描述和思路分析,我们分别使用3种方式来编写程序:

  • 面向移动法
  • 坐标法
  • 滑行法

1. 面向移动法

不管使用哪种方式,首当其冲的是初始化设置,主要包括坐标、大小和显示3个方面,其代码如下:

接下来,就可以设置好汽车的方向,重复执行移动,在移动的同时将大小增加1,当汽车到达左下角时,循环结束,并将角色隐藏起来。在汽车角色中继续编写代码如下:

在上面的代码中,有一个非常重要的设置,那就是“将旋转方式设置为不可旋转”,这可以确保角色的造型不会发生变化。

需要说明两点:

1). 在Scratch中,角色设置为不可旋转或者左右翻转时,角色仍然是可以沿着任何方向移动的;

2). 移动的步数和大小增加的数值可以灵活调整,只要效果ok就行。

2. 坐标法

所谓坐标法,就是同时改变x坐标和y坐标,由于汽车向左下角移动,所以x坐标和y坐标都是变小的。

对应的,编写代码如下:

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

1). 使用坐标法时,可以不用设置旋转方式;

2). x和y增加的数值需要经过多次调整测试,从而达到理想的效果。

3. 滑行法

第三种就是使用滑行指令,但是由于滑行指令是独占模式,所以需要编写两个代码块,分别实现移动和大小变化。

其中移动的代码如下:

而大小增加的代码块如下:

 

代码不难,简单说明两点:

1). 在第一个代码块中增加了“停止全部脚本”指令,可以确保第二个代码块中的循环能够结束;

2). 滑行的时间,大小增加的数值是可以灵活调整的。

至此,整个汽车行驶作品就完成了,很简单吧。

五.总结与思考

本题是编程部分第1题,分数为20分,积木块数量10个左右,涉及到的知识点主要包括:

  • 初始化设置;
  • 外观编程,包括显示、隐藏和改变大小;
  • 运动编程;

作为国赛第1题,本题非常简单,属于送分题,建议完成时间3~5分钟,中级组考生3分钟,而初级组考生约为5分钟。运动编程是Scratch最基础的内容,其实现方式主要有如下3种:

  • 使用“面向90度” + “移动10步”指令;
  • 使用“将x增加10” + “将y增加10”指令;
  • 使用“在1秒内滑行到x,y”指令;

每一种方式都有其使用场景,但是大部分情况下,它们是通用的,我们应该选择最优的方案,所谓最优就是代码最少、最简单。

在平时学习编程的过程中,还是要养成多思考,多尝试的好习惯,看看有没有其它的实现方式,有没有更好的实现方式。

一旦你做到了多思考、多尝试、多总结,你的收获自然也会比别人多,你说呢?

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

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

从Scratch到Python 06 重新认识字符串

2023-6-2 9:36:00

综合资讯

挖坑小游戏/几何大逃杀(单图版)/Scratch实现

2023-6-2 22:49:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索