傳統上在mBlock或是Scratch的積木程式設計裡面,如果要進行問答題測驗遊戲時,通常最簡單的方式是透過內建的問答積木來進行,不過,此種方式需要讓使用者自由輸入文字,應用在選擇題時互動性就沒有那麼好,在這個例子中,我們就來教同學如何利用廣播訊息的方式,以互動的介面來完成一個簡單的測驗。
為了完成這個程式,我們需要4個角色,如下所示,它們分別是主角色Panda,題目角色quiz,以及2個用來回答問題的按鈕角色A和B:
因為 quiz 角色是用來顯示題目內容的,在這裡我們使用的技巧是把題目以造型的方式來呈現,因此在quiz角色裡面就需要建立所需要的題目造型,在這個示範的例子中,我們只建立了2個題目,也就是2個造型,分別是1和2,如下所示:
程式中需有4個變數,correct和wrong是用來記錄答對和答錯次數用的變數,而answered用來記錄目前的答題狀態,index則是用來指示目前在問的問題是第幾題。另外,一個用來記錄每一題的正確答案的清單answer(請留意和前面的變數answered是不一樣的名字):
接下來就是4個角色的程式,Panda是主角色,當按下此角色時,就會開始問問題,它的所有事件積木如下:
題目quiz的事件積木如下所示,幾個比較重要的事件是當開始旗號被點下去的時候,它會進行一些變數的初始化設定,而當收到play時就會把自己顯示出來,如果gameover訊息出現時,則把自己隱藏起來,此外,為了讓問題可以順利地進行以及檢測,顯示完問題之後,需要把answered變成0,讓回答按鈕在完成回答之後再把它恢復成1,讓題目可以前往下一題:
以下是按鈕A的事件積木:
以下是按鈕 B的事件積木:
這兩個程式唯一的差別是正確答案一個是A,另外一個是B。而該題的正確答案則是由answer的清單中以index的位置來核對。以下是執行的成果: