教学原文参考:翻翻卡 ( 卡牌记忆 )
这篇文章会介绍,如何在 Scratch 3 里使用变数、清单、多个角色、重复、广播讯息和造型...等积木,实作一个翻翻卡的卡牌记忆小游戏。
在角色编辑区,删除猫咪角色,使用绘画,绘制新角色 ( 参考:造型与绘图 )。
将新角色的第一个造型,绘制一个黄色的方形 ( 颜色可自行定义 ),作为卡牌的封面 ( cover ),接着新增三个造型,作为翻牌配对的图案。
小技巧:如果担心图形位置不准确,可以先复制第一个造型,再复制新增的图案,贴上到复制的造型上即可。
虽然有六张卡牌,但因为卡牌的程序都相同,所以先放置一张卡牌,所有程序都完成後,再复制出其他五张卡牌。
点击「舞台」,将一开始的程序写在「舞台」里。
新增三个变数 ( 几张卡、n 和 ok ) 和一个清单 ( 卡牌顺序 )。
设定点击绿旗的程序:
因为卡牌的图案两两相同,所以每次将 n 添加 0.5,再使用无条件舍去,就能做到两两相同的效果,例如 [2, 2.5, 3, 3.5, 4, 4.5] 就会变成 [2, 2, 3, 3, 4, 4]。
接着设计「打乱卡排顺序」以及「开始游戏」的程序:
这里使用打乱顺序的方式,是将第一个项目取出,例如 [2, 2, 3, 3, 4, 4] 就会变成 [2, 3, 3, 4, 4],再将第一个项目插入到後方随机的位置,就可能会变成 [2, 3, 3, 2, 4, 4],当重复的次数够多,清单顺序就会完全被打乱。
点击卡牌角色,编辑「翻牌比对」的程序,首先当点击绿旗时,显示卡牌 ( 因为游戏结束会隐藏卡牌,所以开始时要重新显示 ),并将卡牌造型设定为封面 cover。
接着建立一个「仅适用当前角色」的变数,命名为「个别内容」。
「仅适用当前角色」的变数在改变数值时,不会影响到别的角色。
设定收到「开始」讯息时,将「个别内容」变数设定为「卡牌顺序」的第一个项目,接着移除卡排顺序的第一个项目 ( 如此就能保证不会和别张卡牌重复 )。
设定「当角色被点击」的程序:
设定收到「相同」讯息时的程序:
为什麽要再次判断变数 ok 是否等於「个别内容」?因为发送「相同」讯息时,舞台上所有的卡牌都会收到同样的讯息,所以必须要再次进行判断,确认相同後,再将变数 ok 设定为 0。
接着设定收到「不同」讯息时,等待一秒後将卡牌造型变成封面 cover。
最後,复制卡牌角色,并将复制出的卡牌,在舞台上排列整齐。
完成後,点击绿旗,就可以开始进行翻翻卡 ( 卡牌记忆 ) 的游戏。
范例解答:翻翻卡 ( 卡牌记忆 )
如果已经熟悉了翻翻卡 ( 卡牌记忆 )的原理,还可以尝试更多好玩的作法:
- 沿用范例程序,将卡片变成 10 张。( 解答 )
大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!
基本介绍 DCS 分散控制系统(Distributed Control System):不需要有中...
哎~~心法没有,拳法太弱.... Remove Duplicates from Sorted Li...
在写 C 语言时 char *week[] = { "Friday", &quo...
简单来说 Docker 就是一个虚拟机,确保执行专案时的环境都一样。 毕竟影响程序执行成功或失败的变...
call, apply, bind 方法 当我们对函式使用 call, apply, bind 这三...