对对碰-第11届蓝桥杯省赛第6题

对对碰-51scratch
对对碰-第11届蓝桥杯省赛第6题
此内容为付费资源,请付费后查看
19.9
限时特惠
39.9
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费资源
已售 1

作品介绍

今天为大家分享的Scratch作品是《对对碰》,这是第11届蓝桥杯省赛真题,原定于2020年3月7日举行的省赛,因疫情延期到2020年6月21日,这是中级组编程部分的第6题,也是最后一题,题目要求考生编程创作一个简单的对对碰游戏,两两相同的一共四张扣下的纸牌,每次先后翻开两张。如果两张一样就消失,如果两张不一样就重新扣下。当舞台上所有纸牌都消失,就过关了。

先来看看题目的要求吧:

编程实现:

对对碰

两两相同的一共四张扣下的纸牌,每次先后翻开两张。如果两张一样就消失,如果两张不一样就重新扣下。当舞台上所有纸牌都消失,就过关了。

第11届蓝桥杯Scratch省赛真题-对对碰-效果图1
效果图1
第11届蓝桥杯Scratch省赛真题-对对碰-效果图2
效果图2
第11届蓝桥杯Scratch省赛真题-对对碰-效果图3
效果图3
第11届蓝桥杯Scratch省赛真题-对对碰-效果图4
效果图4

具体要求:

1). 创建四个纸牌角色,每张纸牌包含两个造型(正面和背面),其中两张牌面为小猫,另外两张牌面为小狗,牌的背面图案都一样;

2). 当绿旗被点击,四张纸牌以牌面朝下的状态,以随机顺序出现在如图所示的四个位置(不能重叠),参考坐标:(-100,100),、(50,100)、(-100,-50)、(50,-50);

3). 任意选择一张纸牌,点击可以翻开这张纸牌, 每当翻开两张纸牌时就要判断这两张纸牌是否一样。如果一样,则这两张纸牌消失掉。如果不一样,则两张纸牌重新扣回,等待下一次翻牌;

4). 当舞台上的四张牌全部消除,则游戏成功。小猫角色出现在舞台中心位置,说出从开始出现纸牌到纸牌全部消除所用的游戏时间,持续2秒。并且将本次游戏时间加入列表“成绩单”的最后一项,此时列表“成绩单”还要显示在舞台上;

第11届蓝桥杯Scratch省赛真题-对对碰-显示用时
显示用时

5). 紧接着,小猫询问“是否排序?”,如果输入“是”,那么就以从小到大的顺序,将列表中的数据进行排序,程序结束;

第11届蓝桥杯Scratch省赛真题-对对碰-询问是否排序
询问是否排序

6). 再次点击绿旗,还可以进行下一轮游戏。注意:成绩单的数据要保留不要删除。

第11届蓝桥杯Scratch省赛真题-对对碰-排序结果
排序结果

作品效果

Scratch对对碰作品的效果如视频所示:

Scratch对对碰作品效果

作品解读

Scratch对对碰作品一共使用了5个角色,如图所示:

第11届蓝桥杯Scratch省赛真题-对对碰-角色列表
角色列表

本题还是挺有难度的,我们需要解决以下几个问题:

  • 如何实现洗牌
  • 如何如何点击的是第一张牌还是第二张牌
  • 如何判断是否两张牌匹配成功

为了实现随机洗牌效果,我们可以使用一个列表,用来保存四张纸牌的位置,每次点击绿旗时,将1、2、3、4四个数随机插入到列表中,这部分的代码如下所示:

第11届蓝桥杯Scratch省赛真题-对对碰-随机生成列表
随机生成列表效果

然后,四个纸牌角色在接收到广播消息后,就按照列表中的数字移到相应的位置,以纸牌1角色为例,其代码如下:

第11届蓝桥杯Scratch省赛真题-对对碰-纸牌1角色代码
纸牌1角色代码

另外两个问题都需要借助变量来实现,我们可以定义两个变量,一个是“第几张牌”和“已翻开牌面”,其中第几张牌用来表示当前翻开的是第几张牌,如果是第一张牌,则翻开即可,并使用变量“已翻开牌面”记录下翻开的牌。如果当前是第2张牌,则需要比较,翻开的两张牌是否相同,如果相同,则消除,否则都翻回去。

© 版权声明
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容