前幾天帶同學(xué)參加完寧波市知識問答比賽后,我想到一個小問題,我可不可以用Scratch制作一個選擇題形式的問答小游戲,以往做問答題都是通過鍵盤輸入ABCD或者1234來進行輸入判斷,這次除了鍵盤輸入之外能不能用鼠標(biāo)來選擇答案,并根據(jù)鼠標(biāo)的選擇反饋結(jié)果。
在制作這個問答游戲前,我們按程序設(shè)計流程首先需要對這個游戲進行功能及需求分析,功能上需要實現(xiàn)通過鼠標(biāo)來選擇答案,接下來確定可以用角色來充當(dāng)選項,方便對鼠標(biāo)點擊做出相應(yīng)的反饋,要判斷選擇是否正確,正確和錯誤都要做出對應(yīng)的反饋比如正確加分,錯誤不加分。還要解決題庫問題,多道題目的問題選項究竟是由角色引出還是放入背景中通過切換背景完成題目的切換,這需要根據(jù)后續(xù)編程的難易程度選擇。分析確定這兩點后我們就可以動手編寫程序了。
最終我們選擇了用背景造型保存題目,通過切換背景換題,打開Scratch的背景頁面,將所需要的問題和選項添加到背景造型中。背景依次是三道選擇題、游戲封面、正確標(biāo)志Correct、錯誤標(biāo)志W(wǎng)rong,共6個造型,如果新增題目要放在游戲封面之前。
手動增加四個選項按鈕角色,當(dāng)界面出現(xiàn)問題后,用戶可以點擊ABCD選項作答。正確加分,錯誤不加分(如圖1)。
首先創(chuàng)建兩個廣播“開始答題”和“答題結(jié)束”用來控制選項角色的出現(xiàn)與消失。默認情況下所有的選項都是隱藏消失不見,當(dāng)接收到“開始答題”廣播后顯示ABCD選項,當(dāng)接收到“答題結(jié)束”廣播后隱藏ABCD選項。新增變量“選項”記錄鼠標(biāo)輸入的選項結(jié)果和變量“Score”用來統(tǒng)計最終得分(如圖2)。
新增列表“正確答案”,當(dāng)點擊運行后,首先將正確答案選項添加到正確答案列表中,并且分數(shù)初始值設(shè)為0(如圖3)。
當(dāng)接收到開始游戲后,根據(jù)題庫的順序依次進行出題,也可以打亂出題的順序,隨機從題庫中出題,代碼需要稍作修改,除了將“答題順序”設(shè)為隨機數(shù)外,答題后“答題順序”+1也需要修改,本例中未做演示。
出題結(jié)束后,通過廣播“開始答題”的方式顯示出ABCD,當(dāng)用戶通過鼠標(biāo)點擊ABCD選項角色后,“選項”的值自動設(shè)置為ABCD。這里可能大家會提出問題了,如何去判斷用戶已經(jīng)作答結(jié)束呢?我們可以通過“選項”的字符長度判斷,當(dāng)“選項”的字符長度大于0時,說明用戶已經(jīng)答題完畢就可以進行答案的判斷了。我們只需要將當(dāng)前“選項”和列表中對應(yīng)的“答題順序”項進行比較就可以了,當(dāng)“選項”與列表中答案相符,答題正確,背景切換成Correct,“Score”加1分。否則答題錯誤,切換成Wrong背景,不加分(如圖4)。
大家也可以自行設(shè)計一些其他小功能,比如倒計時或者附加題……只要開動腦筋,發(fā)揮想象,相信你也可以完成得很出色!