小瑪莉遊戲機
這篇文章會介紹如何使用「函式」、「邏輯判斷」、「當按鈕按下」、「變數」、「點亮」、「計次迴圈」等積木,實作一個有趣又復古的的小瑪莉遊戲機。
遊戲方式
小瑪莉遊戲機是一款復古的博弈遊戲,使用者先在外圍選定一個燈號,遊戲開始後外圍中獎燈號開始移動,如果中獎燈號停下來與自選燈號重疊,則表示中獎,如果沒有重疊,則沒有中獎。
如果使用 micro:bit 實作,遊戲操作步驟如下:
- 按下 B 按鈕,在外圍設定自選燈號。
- 按下 A 按鈕,中獎燈號開始移動 ( 此時按下 B 按鈕沒有反應 )。
- 中獎燈號與自選燈號重疊,表示中獎。
- 中獎燈號與自選燈號不重疊,表示沒中獎。
- 同時按下 AB 按鈕,重新開始遊戲。
積木程式原理
參考「燈光繞圈圈 ( 函式 )」一文的內容,開啟燈光在外圍繞圈的範例,從這個範例繼續修改。
範例:燈光繞圈圈 ( 函式 )
因為遊戲中會有亮度不同的燈號,所以要在亮燈的函式裡,新增亮度參數,將滑鼠移到函式積木上方,按下右鍵,點選「編輯函式」。
點選上方「數字」按鈕,替函式增加數字的參數,並將名稱命名為「亮度」。
添加函式參數後,將原本函式裡的「點亮」積木,改成「具有亮度」的點亮積木。
舉有亮度的積木在「燈光 ( 更多 )」裡,參考:點亮...亮度
修改「當啟動時」的積木內容,新增 a、b、play 三個變數:
- 變數 a:中獎燈號,預設 1。
- 變數 b:自選燈號,預設 1。
- 變數 play:判斷中獎燈號是否正在移動,預設 0 ( 0 表示沒有移動,1 表示正在移動 )。
將原本「重複無限次」的程式,改成「當按鈕 B 被按下」:
- 放入「如果 play = 0 那麼」的邏輯判斷積木。
- 將原本的程式放入 play = 0 的邏輯判斷裡。
- 點燈的亮度設為 255。
新增「當按鈕 A 被按下」時,中獎燈就開始移動的程式:
- 當按鈕 A 被按下時,變數 play 設定為 1,讓按下 B 按鈕失去作用。
- 放入「重複...次」迴圈,重複 100~116 次。
- 每次重複執行讓中獎燈號往前移動。
- 每次重複持續顯示自選燈號,但將自選燈號亮度調暗為 50。
- 重複結束後,判斷 a 是否等於 b,如果 a、b 相等,表示中獎。
最後新增「當按鈕 A+B 按下」的程式,當 AB 按鈕按下時,將變數 a、b 和 play 設定為預設值,並清空畫面。
完成後,啟動 micro:bit,就可以開始玩小瑪莉遊戲機了。
範例解答
範例解答:小瑪莉遊戲機
延伸練習
如果已經熟悉了小瑪莉遊戲機的原理,還可以嘗試更多好玩的作法:
- 嘗試讓中獎燈出發時速度較快,接著越跑越慢 ( 解答 )。
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~