前幾天帶同學參加完甯波市知識問答比賽後,我想到一個小問題,我可不可以用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)。
大家也可以自行設計一些其他小功能,比如說倒計時或者附加題……隻要開動腦筋,發揮想象,相信你也可以完成的很出色!
,