[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第86讲。
蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。
第12届蓝桥杯青少年组第4次选拔赛于2020年11月21日举行,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。
棒子老虎鸡,本题是2020年11月21日举行的第12届蓝桥杯Scratch选拔赛真题编程第4题,初级组和中级组都有此题,题目要求编程创作一个棒子老虎鸡游戏。
先来看看题目的要求吧。
背景信息:
“棒子、老虎、鸡”是和“石头、剪刀、布”类似的游戏,棒子打老虎,老虎吃鸡,鸡啄棒子。
编程实现:
小猫和小狗玩“棒子、老虎、鸡”的游戏。
具体要求:
1). 点击绿旗,按下空格键,小猫和小狗同时说出“棒子、老虎、鸡”后,其上方棒子开始随机切换”棒子、老虎、鸡“这三个造型中的一个;
2). 当平局时,螃蟹说:“平局”1秒;
3). 当小猫赢时,螃蟹说:“小猫赢”1秒;
4). 当小狗赢时,螃蟹说:“小狗赢”1秒。
本题一共有5个角色,如图所示:
5个角色各司其职,可以简单的划分为3类,其中小猫角色和小狗角色负责发号施令,两个棒子老虎鸡角色则负责切换成相应的造型,螃蟹角色则负责裁判工作。
棒子老虎鸡角色有三个造型,分别是老虎、棒子和鸡,如图所示:
随机切换棒子老虎鸡角色的造型很简单,关键是如何比较谁输谁赢。
显然,我们可以通过比较二者的造型编号来决定胜负,如果二者的造型编号相同,就为平局,如果二者造型分别为1和2、2和3、3和1,则前者赢,否则就是后者赢。
为了简化代码,我们可以定义两个变量用于表示两个棒子老虎鸡角色的造型编号。
根据题目描述和思路分析,我们可以分三步来编写程序:
小猫小狗发出指令
棒子老虎鸡角色切换造型
螃蟹判断输赢
1. 小猫小狗发出指令
首先创建好两个变量,分别命名为”小猫“和”小狗“,如图:
绿旗点击时,将小猫移到舞台左下方,当按下空格键时,先说”棒子老虎鸡“,然后将”小猫“变量设置为随机数,其范围为1到3之间,然后发送一个”小猫出拳“的广播消息,在小猫角色中编写代码如下:
同理,切换到小狗角色,编写类似的代码如下:
2. 棒子老虎鸡角色切换造型
棒子老虎鸡1角色在接收到”小猫出拳“广播消息后,只需要切换到变量”小猫“对应的造型即可,对应的代码如下:
同理,切换到棒子老虎鸡2角色,编写代码如下:
和棒子老虎鸡1角色相比,这里多了一个广播消息,其作用是告诉螃蟹角色可以判断输赢了。
3. 螃蟹判断输赢
螃蟹角色在接收到”裁判“广播消息后,就根据”小猫“和”小狗“两个变量的值来判断谁输谁赢了,切换到螃蟹角色中,编写代码如下:
判断的逻辑比较简单,如果两个变量相等,则说明平局。否则就要分情况讨论了,小猫赢的情况有3种,它们是逻辑或的关系,在每一种情况下,小猫和小狗都有对应的造型,二者之间则是逻辑与的关系。
补充说明一点,注意这里的写法,判断的结果有三种情况,一是平局,二是小猫赢,三是小狗赢。一般来说,针对这种情况,我们需要在”如果...那么...否则“指令中,再嵌套一个”如果...那么...否则“指令,如图:
可以说这是标准的写法,但我们完全可以不用嵌套,只需要借助”停止这个脚本“指令就能轻松的实现。如果两个变量相等,就表示平局,后续就不需要判断了,提前结束脚本,如果不相等,我们再判断是小猫赢还是小狗赢。
本题难度系数为4,积木块数量55个左右 ,涉及到的知识点主要包括:
外观编程,包括切换造型和说话指令;
随机数指令的作用及使用;
事件广播机制;
运算符指令,包括比较和逻辑与、逻辑或运算;
条件指令的使用,包括单分支和双分支。
本题难度中等,关键是找到判断输赢的条件,从数学的角度来讲,两个角色各有3种造型,根据排列组合原理,一共有3x3=9种情况,其中平局有三种情况,小猫赢有三种情况,小狗赢也有三种情况。平局最为简单,所以我们只需要找到小猫赢的条件,题目就迎刃而解了。
如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。