概述:
第六個專案課程,是讓學習者利用 Micro:bit 創建一個神奇八號球。Micro:bit 將透過兩個程式積木組,一個要求玩家 “ask a question” ,另一個程式積木組將在搖動 Micro:bit 之後,隨機產生一組答案。
神奇八號球(Magic 8 ball),或譯魔力8球,是一個占卜類的小玩具,它的外型可能略大於或等同八號球,它有一面模仿8號球圖案,另一面為三角形窗口,而內部中空並注有液體。此玩具的玩法為:先將窗口朝下,同時向球問是非題,接著輕輕搖晃後再將窗口面轉上,之後在球內的二十面體中會有一道答案浮現在窗口。(維基百科)
![](https://microbit.org/assets/posts/2017-03-07-magic%208%202.png)
- 五分鐘課程計畫 (pdf)(pptx)
- 教師手冊 (pdf)(docx)
- 白板資源 (pptx)
- 學生功課表_Worksheet (docx)
- 範例檔:Hex File (Tip: Save link for Mac, Save target for PC)
教學內容:
教學目標
- 可以利用 if 陳述式和簡單迴圈(loop)的演算法概念設計程式。 (AL)
- 學會宣告和賦值變數。 (AB)
- 在迴圈中使用變數和關係運算子來控制終止。 (AL) (GE)
- 使用邏輯推理來預測結果。 (AL)
- 發現和糾正錯誤,調整系統的規則。 (AL)
- 利用演算法創造實現給定的目標程式。 (AL)
- 能理解程式設計是解決問題方案和電腦之間的橋樑。 (AB)
- 能使用單向、雙向、多向、巢狀判斷陳述式。(AL)
Computational Thinking Concept:
AB=Abstraction; DE=Decomposition;AL=Algorithmic Thinking;EV=Evaluation;GE=Generalisation。
AB=Abstraction; DE=Decomposition;AL=Algorithmic Thinking;EV=Evaluation;GE=Generalisation。
學生將具備的能力
- 使用手勢(動作)輸入指令控制 Micro:bit。
- 建立隨機產生的變數。
- 能使用if... then...else (如果...那麼...否則) 條件判斷式。
- 在 LEDs 上顯示個別的圖案。
課程挑戰目標
基於此專案延伸的任務挑戰目標。
- 學習添加額外的答案。
- 學習添加一個可以隨手勢搖動的動畫。
Step by Step
這個 Program 將創造一個虛擬的 "Magic 8" 球,它將要求使用者提供一個問題,並且給予隨機的回覆。
第一步,將創建一組對玩家提出問題的程式積木組。程式編輯的作法是從程式積木區中的 "基本" 積木,選擇 "顯示 文字 Hello" 積木建立文字字串,來顯示題目在 LEDs 螢幕上。
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-11-12.png)
將 "基本" 積木區中的 "顯示文字 Hello" 積木堆疊入"在開始時"的積木中,並變更文字內容為 "Ask a question"。
重複上一個步驟,並變更文字內容為 "8"。作為神奇八號球的Logo。
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/microbit-0601%281%29.png)
完成上述步驟,在 micro:bit 上會顯示 "Ask a question" 及 "8"。
接著,我們將利用 "搖動" 指令來作為,程式的輸入指令。首先,在程式積木區的 "輸入" 積木中,將 "當 搖動" 積木拖拉至程式編輯區。
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-21%20%286%29.png)
遊戲開始,會清除LEDs螢幕,然後再顯示答案。所以先選擇 "基本" 積木中的 "清除 屏幕" 積木,堆疊在 "當 搖動" 的程式迴圈中。
從變數積木中選擇 "建立一個變數",並設定積木名稱為"Random"
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%284%29.png)
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%285%29.png)
將程式積木區中 "變數" 積木的 "變數 item 設為0" 的積木拖拉至程式編輯區。
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%286%29.png)
變更積木中 "item" 的名稱為 "Random"。
再將程式積木區中 "數學" 積木的 "Pick Random 0 to 4" 的積木拖拉至"變數 item 設為0" 的積木後方,取代積木 "0"。![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%287%29.png)
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%288%29.png)
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%287%29.png)
將 "Pick Random 0 to 4" 積木中的 "4" 變更為 "2"。(如下圖)
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/microbit-0602.png)
接著,將程式積木區中 "邏輯" 積木的 "如果...那麼...否則 (if...then...else)" 積木拖拉至程式編輯區,堆疊在 上一個積木下方。![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%289%29.png)
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-29%20%289%29.png)
利用 if... then...else (如果...那麼...否則) 條件判斷式,設計一個多重的條件判斷 Program。
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-10-22%20%286%29.png)
由於有種可能的選項,所以需要再添加1個 “ else...if” 語句。這包含第一個 “if” 語句,1個 “else...if” 語句和最後的 “else” 語句,總共包含3個選項。
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-11-12%20%283%29.png)
最後,利用 if 陳列式作為判斷式。依序填入運算式,判斷當條件成立時,則顯示相應答案。(如下圖)
![](https://mymell20031.gitbooks.io/micro-bit/content/assets/2017-11-12%20%284%29.png)