教學原文參考:翻翻卡 ( 卡牌記憶 )
這篇文章會介紹,如何在 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,是個即將邁入中年的斜槓青年,如果對我有點興趣(笑,可以與我聯繫,一起來做點有玩又有創意的東西吧!