前幾天帶同學參加完寧波市知識問答比賽后,我想到一個小問題,我可不可以用Scratch制作一個選擇題形式的問答小游戲,以往做問答題都是通過鍵盤輸入ABCD或者1234來進行輸入判斷,這次除了鍵盤輸入之外能不能用鼠標來選擇答案,并根據鼠標的選擇反饋結果。
在制作這個問答游戲前,我們按程序設計流程首先需要對這個游戲進行功能及需求分析,功能上需要實現通過鼠標來選擇答案,接下來確定可以用角色來充當選項,方便對鼠標點擊做出相應的反饋,要判斷選擇是否正確,正確和錯誤都要做出對應的反饋比如正確加分,錯誤不加分。還要解決題庫問題,多道題目的問題選項究竟是由角色引出還是放入背景中通過切換背景完成題目的切換,這需要根據后續編程的難易程度選擇。分析確定這兩點后我們就可以動手編寫程序了。
最終我們選擇了用背景造型保存題目,通過切換背景換題,打開Scratch的背景頁面,將所需要的問題和選項添加到背景造型中。背景依次是三道選擇題、游戲封面、正確標志Correct、錯誤標志Wrong,共6個造型,如果新增題目要放在游戲封面之前。
手動增加四個選項按鈕角色,當界面出現問題后,用戶可以點擊ABCD選項作答。正確加分,錯誤不加分(如圖1)。

首先創建兩個廣播“開始答題”和“答題結束”用來控制選項角色的出現與消失。默認情況下所有的選項都是隱藏消失不見,當接收到“開始答題”廣播后顯示ABCD選項,當接收到“答題結束”廣播后隱藏ABCD選項。新增變量“選項”記錄鼠標輸入的選項結果和變量“Score”用來統計最終得分(如圖2)。

新增列表“正確答案”,當點擊運行后,首先將正確答案選項添加到正確答案列表中,并且分數初始值設為0(如圖3)。

當接收到開始游戲后,根據題庫的順序依次進行出題,也可以打亂出題的順序,隨機從題庫中出題,代碼需要稍作修改,除了將“答題順序”設為隨機數外,答題后“答題順序”+1也需要修改,本例中未做演示。
出題結束后,通過廣播“開始答題”的方式顯示出ABCD,當用戶通過鼠標點擊ABCD選項角色后,“選項”的值自動設置為ABCD。這里可能大家會提出問題了,如何去判斷用戶已經作答結束呢?我們可以通過“選項”的字符長度判斷,當“選項”的字符長度大于0時,說明用戶已經答題完畢就可以進行答案的判斷了。我們只需要將當前“選項”和列表中對應的“答題順序”項進行比較就可以了,當“選項”與列表中答案相符,答題正確,背景切換成Correct,“Score”加1分。否則答題錯誤,切換成Wrong背景,不加分(如圖4)。

大家也可以自行設計一些其他小功能,比如倒計時或者附加題……只要開動腦筋,發揮想象,相信你也可以完成得很出色!