隨機不重複的燈
這篇文章會延伸「依序點燈 ( 數字函式 )」文章,將文章中的「函式」,搭配「陣列」、「變數」、「重複...判斷」、「點亮」積木,讓 micro:bit 顯示隨機且不重複的 LED 燈。
積木程式原理
參考「依序點燈 ( 數字函式 )」文章,開啟使用函式點燈的範例,開啟後,因為只需要用到「函式」的部分,所以將「當啟動時」以及「重複無限次」的積木刪除。
放入「當按鈕 A 被按下」的積木,在按下 A 按鈕時,建立一個名為 list 的空陣列 ( 先拉出 list 陣列積木,再將空陣列放入 )。
接著使用「重複 25 次」,將陣列變成為具有 25 個項目的陣列,每個項目值設定為 0。
有了 25 個項目的陣列後,就能藉由陣列的特性,產生不重複的隨機數 ( 範例會產生 3 個隨機數 ):
- 新增變數 n,預設數值 0 ( 作為重複迴圈的停止條件使用 )
- 新增「重複...判斷」迴圈,判斷 n<3 時就不斷重複。
- 每次重複時,建立 a 變數,數值為 0~24 的隨機數。
- 判斷陣列 list 的 a 項目,如果數值等於 0,就將該項目變更為 1。
- 如果滿足條件,就將 n 增加 1。
- 如果不滿足條件 ( list 的 a 項目等於 1,表示這個數字重複 ),就繼續重複迴圈。
最後在按下 A 按鈕時,清空畫面,並於上面的邏輯判斷裡,加入「呼叫函式」積木,就能點亮隨機不重複的燈。
完成後,啟動 micro:bit,每次按下 A 按鈕,就會出現隨機不重複的三個燈。
範例解答
範例解答:隨機不重複的燈
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~