2017年11月12日 星期日

Lesson 06. Magic 8 (神奇八號球)

概述:

第六個專案課程,是讓學習者利用 Micro:bit 創建一個神奇八號球。Micro:bit 將透過兩個程式積木組,一個要求玩家 “ask a question” ,另一個程式積木組將在搖動 Micro:bit 之後,隨機產生一組答案。
神奇八號球(Magic 8 ball),或譯魔力8球,是一個占卜類的小玩具,它的外型可能略大於或等同八號球,它有一面模仿8號球圖案,另一面為三角形窗口,而內部中空並注有液體。此玩具的玩法為:先將窗口朝下,同時向球問是非題,接著輕輕搖晃後再將窗口面轉上,之後在球內的二十面體中會有一道答案浮現在窗口。(維基百科)


教學內容:

教學目標

  1. 可以利用 if 陳述式和簡單迴圈(loop)的演算法概念設計程式。 (AL)
  2. 學會宣告和賦值變數。 (AB)
  3. 在迴圈中使用變數和關係運算子來控制終止。 (AL) (GE)
  4. 使用邏輯推理來預測結果。 (AL)
  5. 發現和糾正錯誤,調整系統的規則。 (AL)
  6. 利用演算法創造實現給定的目標程式。 (AL)
  7. 能理解程式設計是解決問題方案和電腦之間的橋樑。 (AB)
  8. 能使用單向、雙向、多向、巢狀判斷陳述式。(AL)
Computational Thinking Concept:
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 螢幕上。
將 "基本" 積木區中的 "顯示文字 Hello" 積木堆疊入"在開始時"的積木中,並變更文字內容為 "Ask a question"。
重複上一個步驟,並變更文字內容為 "8"。作為神奇八號球的Logo。
完成上述步驟,在 micro:bit 上會顯示 "Ask a question" 及 "8"。
接著,我們將利用 "搖動" 指令來作為,程式的輸入指令。首先,在程式積木區的 "輸入" 積木中,將 "當 搖動" 積木拖拉至程式編輯區。
遊戲開始,會清除LEDs螢幕,然後再顯示答案。所以先選擇 "基本" 積木中的 "清除 屏幕" 積木,堆疊在 "當 搖動" 的程式迴圈中。
從變數積木中選擇 "建立一個變數",並設定積木名稱為"Random"
將程式積木區中 "變數" 積木的 "變數 item 設為0" 的積木拖拉至程式編輯區。
變更積木中 "item" 的名稱為 "Random"。再將程式積木區中 "數學" 積木的 "Pick Random 0 to 4" 的積木拖拉至"變數 item 設為0" 的積木後方,取代積木 "0"。
將 "Pick Random 0 to 4" 積木中的 "4" 變更為 "2"。(如下圖)
接著,將程式積木區中 "邏輯" 積木的 "如果...那麼...否則 (if...then...else)" 積木拖拉至程式編輯區,堆疊在 上一個積木下方。
利用 if... then...else (如果...那麼...否則) 條件判斷式,設計一個多重的條件判斷 Program。
由於有種可能的選項,所以需要再添加1個 “ else...if” 語句。這包含第一個 “if” 語句,1個 “else...if” 語句和最後的 “else” 語句,總共包含3個選項。
最後,利用 if 陳列式作為判斷式。依序填入運算式,判斷當條件成立時,則顯示相應答案。(如下圖)
程式完成,可以下載並儲存至 Micro:bit 中,觀察實際執行結果。

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...