捉迷藏之四-第10届蓝桥杯Scratch国赛真题第6题程序4

本文同步发表于”超平的编程课“公众号,更多教程,可移步至公众号。

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

第10届蓝桥杯青少年组国赛于2019年5月25日举行,形式为线下考试,考生自带电脑。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

捉迷藏,本题是第10届蓝桥杯Scratch国赛真题编程第6题,也是最后一题,题目比较复杂,共分为4个程序,我们将分4次来解读和学习,这是第4篇,对应于程序4,题目要求考生在程序3的基础上,增加计时和得分功能,实现有时间限制和得分机制的多局游戏。

先来看看题目的要求吧。

一.题目说明

编程实现(以程序3为基础改进):

实现有时间限制和得分机制的多局游戏。每局游戏都是在时间限制内按照程序3的规则要求过关才能得分和进行下一局游戏,并且下一局游戏的时间限制会缩短,否则游戏结束且程序结束。

具体要求:

1). 每一局游戏均以程序3中规定的规则为基础,增加限制时间机制,即如果玩家在限制时间内正确找到两个小动物才算本局游戏过关;否则,在限制时间到时,所有小动物都现身,并由小猫说“你不够快啊,我们在这里!”2秒钟,本局游戏失败,程序结束。

增加变量“时间”来记录本局游戏的时间,并在程序运行过程中始终显示在舞台右上角(见图1)。

每局游戏的时间限制递减;第1局游戏的限制时间为10秒钟,第2局7秒钟,从第3局开始限制时间均为5秒钟。

每局游戏开始时,“时间”变量应显示本局游戏的时间限制,“小动物藏到前景角色后”这一动作发生时开始倒计时:倒计时应在小猫提示游戏过关或失败的同时停止。

图1

                                                                                图1

2). 增加变量“得分”来记录游戏当前的得分,并在程序运行过程中始终显示在舞台左上角(见图2)。

点击绿旗后,将“得分”赋值为0,然后开始第一局游戏。如果本局游戏过关,则“得分”加1,并在等待2秒钟之后开始下一局比赛;如果本局游戏失败,则程序结束。

                                                                             图2

评判标准:

  • 0分:程序3未得到满分。

  • 50分:完全符合题意。

二.思路分析

本题是在程序3的基础上进行改进的,关于程序3可以参考上一篇,捉迷藏之三-第10届蓝桥杯Scratch国赛真题第6题程序3

对于本题而言,需要增加3大功能:

  • 实现多局游戏

  • 对每局游戏进行限时

  • 统计得分

要实现多局游戏,其实就是让游戏重复进行,一般有两种实现方式,一是直接循环,就是使用循环指令,二是间接循环,通常是使用广播消息来实现。如果代码比较多,一般建议使用后者,本题正是这种情况,所以建议使用广播消息。

限时功能本身挺简单的,不过这里有些特殊,每一局的时间并不完全一致,第一局10秒,第二局7秒,从第三局起都是5秒,所以需要根据当前所在局数来设定时间。

统计得分是最简单的,只要游戏过关,就加1分。

三.编程实现

根据上述思路分析,我们分3个步骤来编写程序:

  • 实现游戏循环

  • 增加计时功能

  • 增加计分功能

1. 实现游戏循环

根据上面的分析,我们使用广播消息来实现游戏循环,其原理也比较简单,就是在点击绿旗的时候,先直接发送一个广播消息“来一轮”,将原来绿旗下面的代码放到“当接收到来一轮”指令的下面,然后在游戏胜利的时候,再次发送”来一轮“广播消息,这样就可以周而复始,让游戏循环起来了。

需要修改的代码非常少,涉及的角色有3个,分别是小猫、老鼠和第一个前景角色(在这里是Apple角色)。

切换到小猫角色,修改代码如下:

注意,此处只列出了部分代码,为了方便理解,顺便来看一下修改之前的代码,如下:

然后在游戏胜利的时候,再发送一个”来一轮“广播消息即可, 代码如图所示:

对应的,老鼠角色也需要进行相应的修改,将原来绿旗下面执行的代码,放到”当接收到来一局“指令下面,代码如下所示:

同理,苹果角色也作相应的处理,这里就不贴出代码了。其它5个前景角色不用做任何修改,因为它们都是在接收前一个角色发送的广播消息才开始随机位置的。

2. 增加计时功能

由于每一局的时间不同,所以在创建”时间“变量的同时,还需要创建一个”局数“变量,然后根据不同的局数来设置时间并进行倒计时,对应的代码如下所示:

这部分代码和具体的角色无关,可以写在任何角色中,建议放到舞台背景中。同时需要说明,这里的”开始计时“广播消息是老鼠角色在藏好之后发送的,需要在老鼠角色中添加广播消息指令。

当时间减到0的时候,小猫会说”你不够快啊,我们在这里!“,在小猫角色中添加代码如下:

3. 增加计分功能

统计得分非常简单,先创建一个变量”得分“,在绿旗点击的时候,将其初始化为0,然后在胜利的时候,将得分加1即可,代码如图所示:

至此,一个完整又有趣的捉迷藏游戏就创作完成了,赶紧来挑战一下,看看你能得多少分吧。

四.总结与思考

本题是捉迷藏的程序4,难度不大,要编写的代码也不多,涉及到的知识点包括:

  • 妙用广播消息实现游戏循环;

  • 倒计时的实现方法,变量+等待时间+直到循环;

  • 变量的使用,包括创建变量、初始化变量和修改变量值。

到这里,捉迷藏游戏就全部完成了,从程序1到程序4,难度逐步增加,说句真心话,这是一道难度极大的编程题。除了要熟练掌握Scratch编程技巧之外,还需要考生具备较强的阅读能力和严谨的逻辑思维能力,同时还得有过硬的心理素质。

由此看来,想要在蓝桥杯竞赛中取得好成绩,不是一件轻松的事情,依靠的也不是某一项突出的能力,而是综合能力的比拼,这也正是少儿编程和STEAM所倡导的教育理念。

需要素材和源码的,可以联系本人,或者移步至”超平的编程课“公众号。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值