翻翻卡、卡牌記憶 ( 2024 改良版 )
這篇文章會介紹,如何在 Scratch 裡使用區域變數、全域變數、分身和廣播訊息...等積木,實作一個翻翻卡的卡牌記憶小遊戲 ( 此篇文章修改原本「翻翻卡、卡牌記憶」範例,使用分身取代多個角色,讓程式更清楚好懂 )。
快速導覽:
繪製角色
使用繪畫的方式建立角色「card」,使用方形工具繪製第一組造型,造型名稱為 cover,表示卡牌的封面。
複製卡牌封面造型,在方形裡繪製不同的圖案,如法炮製產生六組不同圖案的造型,可自訂造型名稱。
程式原理
建立「卡牌清單」函式,勾選「執行完畢再更新畫面」。
「卡牌清單」函式執行後,會先清空 list 清單內容,接著重複 12 次,每一次重複會切換造型並略過封面 cover 造型,接著將目前的造型寫入清單的隨機位置,由於清單長度從 0 開始,因此在計算隨機位置時要使用「清單長度 + 1」。
建立「產生分身」函式,勾選「執行完畢再更新畫面」。
建立「產生分身」函式執行後,會在舞台上建立 4x3 共 12 個卡牌分身,建立分身之前,會設定變數 n 為 0,該變數會在分身建立時,賦予不同分身不同的數值。
新增變數「name_local」,勾選「僅適用當前角色」將變數設定為「區域變數」。
當分身產生時顯示分身,並將分身造型設定為 cover,透過增加 n 和 name_local 搭配,就能賦予不同分身有不同的 name_local 數值,接著使用重複迴圈實作點擊分身的程式邏輯,當分身點擊時根據 name_local 切換分身造型,並將造型名稱寫入 check 清單中,如果 check 裡兩個項目相等,表示翻到同樣的卡牌,翻到同樣卡牌時廣播 1,翻到不同卡牌時廣播 2。
使用「廣播並等待」的意義,在於接收廣播之後,會有等待一秒的效果,必須等待這一秒完成後再繼續進行後續動作。
收到廣播 1 時表示卡牌花色相同,將舞台中造型不是 cover 的卡牌進行閃爍,閃爍結束後刪除分身,如果收到廣播 2 表示卡牌不同,等待一秒後將造型恢復 cover。
效果展示
完成後點擊綠旗,就可以開始進行翻翻卡的卡牌記憶遊戲。
範例解答
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~