任務目標
- 從 1 ~ 6 的數字中選出 3 個不同的數字並顯示於 LED
- 按鈕 A 清除畫面
- 按鈕 B 顯示開獎結果
學習目標
- 條件判斷
- 變數
- 亂數產生
- 迴圈
- 條件判斷
- 函式
- 陣列
- LED 顯示與清空
- 暫停
- Blockly 語法
- Python 語法
前置準備
- 一台電腦
- 覽瀏器 ( 本範例使用 Chrome )
使用料件
- Micro:bit
- Micro USB Cable
樂透開獎機程式邏輯
當按鈕 A 被按下時
宣告一個 itemArray 的變數存放 1 到 6 的數字
當按鈕 B 被按下時
從 itemArray 中隨機取出 1 數值並從 itemArray 中移除,此動作執行 3 次,
以取出 3 個樂透數值且保證不重複
樂透開獎機程式撰寫
一、Blockly 語法
Step 1. 開啟線上編輯器
❖ 1.1 開啟瀏覽器並輸入下方網址
https://makecode.microbit.org/#

Step 2. 撰寫 Blockly 程式
❖ 2.1 依樂透開獎機程式邏輯進行 Blockly 程式撰寫

※ 程式說明 ※
宣告一 setArray 函式
再宣告一個 itemArray 的陣列存放 1 到 6 的數字
當程式啟動時
① 建立一個空的 itemArray 的陣列
② 宣告 totalCount 與 catchCount 並設定初值為 3
③ 呼叫 setArray 函式
當按鈕 A 被按下時
呼叫 setArray 函式
清空 LED 畫面
當按鈕 B 被按下時
如果 totalCount 大於等於 catchCount,則
迴圈從 0 執行到 catchCount -1 次
① 宣告 arrayLength 變數存放 itemArray 陣列的元素個數
② 宣告 randomNo 變數存放隨機產生 0 ~ arrayLength -1 的數值
③ 在 LED 畫面上顯示 itemArray 陣列中 randomNo 所在的數值並
將其值從 itemArray 中移除
④ 暫停 1 秒鐘
否則,
在 LED 畫面上顯示 x
Step 3. 燒錄程式到 Micro:bit
❖ 3.1 ① 將所撰寫的程式命名
② 儲存所撰寫的 Blockly 程式到電腦中
③ 將上一步驟中的程式移到 Micro:bit 進行燒錄
④ 在 Micro:bit 上進行測試
Step 4. 成果
從 1 ~ 6 的數字中選出 3 個不同的數字並顯示於 LED

二、Python 語法
Step 1. 開啟線上編輯器
❖ 1.1 開啟瀏覽器並輸入下方網址
https://python.microbit.org/v/1

Step 2. 撰寫 Python 程式
❖ 2.1 依樂透開獎機程式邏輯進行 Python 程式撰寫

※ 程式說明 ※
第 1 行:程式注解最前面以 【 # 】字符號代表,注解請勿使用中文
第 2、3 行:匯入 micro:bit 套件
第 5、6 行:宣告 catchCount 與 totalCount,並初始化為 3、0
第 8 行:① 【 while 】代表 Pyhton 的迴圈,
True 代表條件為真、False 代表條件為假,
此行代表 【 持續不斷執行的迴圈 】
② 以【 : 】做結尾
第 9 行:① 以 【 Tab 】 鍵為縮排代表是在迴圈中的事件
② 如果按下 A 按鈕
③ 以【 : 】做結尾
第 10 行:① 以 【 Tab 】 鍵為縮排代表是在按下 A 按鈕的事件
② 清空畫面
第 11 行:① 以 【 Tab 】 鍵為縮排代表是在按下 A 按鈕的事件
② 宣告 list1 的串列並初始化為 1、2、3、4、5、6
第 12 行:① 以 【 Tab 】 鍵為縮排代表是在迴圈的事件
② 如果按下 B 按鈕
③ 以【 : 】做結尾
第 13 行:① 以 【 Tab 】 鍵為縮排代表是在按下 B 按鈕的事件
② 執行迴圈從 0 到 catchCount - 1
③ 以【 : 】做結尾
第 14 行:① 以 【 Tab 】 鍵為縮排代表是在 for 迴圈的事件
② 宣告 arrayLength 的變數並設定 list1 的長度值
第 15 行:① 以 【 Tab 】 鍵為縮排代表是在迴圈中的事件
② 宣告 randomNo 變數存放隨機從 0 到 arrayLength -1 的數值
第 15 行:① 以 【 Tab 】 鍵為縮排代表是在迴圈中的事件
② 在 LED 畫面顯示 list1 串列中,以 randomNo 所在位置的數值,
並從 list1 串列中刪除此數
第 18 行:① 以 【 Tab 】 鍵為縮排代表是在 for 迴圈的事件
② 暫停 1 秒鐘,
1000 毫秒 ( milliseconds ) = 1 秒 ( seconds )
Step 3. 燒錄程式到 Micro:bit
❖ 3.1 ① 將所撰寫的程式命名
② 儲存所撰寫 Python 的 hex 程式到電腦中
③ 將上一步驟中的程式移到 Micro:bit 進行燒錄
④ 在 Micro:bit 上進行測試
Step 4. 成果
從 1 ~ 6 的數字中選出 3 個不同的數字並顯示於 LED

GitHub
【 GitHub Blockly 】 https://github.com/ArcherHuang/Micro-bit/tree/master/Game/Blockly
【 GitHub Python 】 https://github.com/ArcherHuang/Micro-bit/tree/master/Game/Python
【 Name 】 microbit-Lottory
List of blogs