陳新龍
暑假來臨了,這意味著我們有更多可以自由支配的時(shí)間,不知道大家如何復(fù)習(xí)英語(yǔ)呢?為了能夠更加有效地復(fù)習(xí)英語(yǔ)知識(shí),我決定用Scratch編寫一個(gè)have/has專項(xiàng)練習(xí)小游戲。編寫完成后,找弟弟做實(shí)驗(yàn),他利用碎片時(shí)間玩了十多次,做題的正確率就從35%提升到了95%,效果還是不錯(cuò)的,下面和大家分享一下代碼吧(圖1)。
尋找英語(yǔ)有關(guān)have/has的語(yǔ)法專項(xiàng)練習(xí)題,新建兩個(gè)文本文件,將英語(yǔ)語(yǔ)法題目和答案分別添加到這個(gè)文本中,例如:You (have/has) a nice father。收集題目時(shí)可以使用表格文件統(tǒng)一存儲(chǔ)問題和答案,再提取到兩個(gè)文本中。
為什么要添加到文本文件中呢?主要有兩個(gè)原因,首先Scratch有文本導(dǎo)入功能,可以把文本文字導(dǎo)入到對(duì)應(yīng)列表中。其次是文本文件容易增刪改查,可以大大提高題目收集整理的效率,以后也容易移植用于其他練習(xí)。
在做準(zhǔn)備工作的同時(shí),給大家講解一下這個(gè)程序的運(yùn)行效果:小貓會(huì)從題庫(kù)文本中隨機(jī)挑選一道語(yǔ)法題目進(jìn)行詢問,彈出輸入框填寫是haveor has。當(dāng)用戶輸入正確的答案時(shí),答對(duì)數(shù)加一,如果輸入錯(cuò)誤的答案,答錯(cuò)數(shù)加一。并且做過的題目都會(huì)歸類到正確和錯(cuò)誤兩個(gè)記錄列表中,在同學(xué)們做完訓(xùn)練后還可以根據(jù)數(shù)據(jù)做出針對(duì)復(fù)習(xí)。
首先我們將題庫(kù)文本導(dǎo)入到題庫(kù)列表中,將對(duì)應(yīng)的答案導(dǎo)入答案列表(圖2)。
程序運(yùn)行后,先從題庫(kù)列表中通過隨機(jī)變量I,隨機(jī)挑選一道語(yǔ)法題目顯示出來,請(qǐng)用戶輸入答案,如果用戶輸入的答案與答案列表中的答案項(xiàng)(have/has)是一致的,恭喜回答正確,答對(duì)數(shù)加一,將題目添加到正確題目記錄列表中;如果回答錯(cuò)誤,答錯(cuò)數(shù)加一,并且將題目添加到錯(cuò)題記錄中(圖3)。
將題目中的語(yǔ)法句子輸入到記錄列表時(shí)需要解決這個(gè)程序的難點(diǎn)之一:需要將原題庫(kù)中的問題選項(xiàng)(have/has)替換正確的答案選項(xiàng)(have or has二選一)。替換的算法我選擇了一種普通易懂的方法,通過左右括號(hào)找到答案選項(xiàng),你還可以想一想是不是還有更高效的方法(圖4)。
先將題庫(kù)中的一項(xiàng)語(yǔ)法題目添加到句子變量中,并且設(shè)置兩個(gè)變量左括號(hào)和右括號(hào)。通過循環(huán)提取句子中的每個(gè)字符,記錄下左括號(hào)的位置和右括號(hào)的位置。確定括號(hào)位置之后我們可以將整體的內(nèi)容分成三大部分,左括號(hào)前的內(nèi)容+正確答案(have or has二選一)+右括號(hào)后的內(nèi)容。
再通過三次循環(huán)遍歷的方法提取出三個(gè)部分的內(nèi)容,請(qǐng)配合代碼理解這一步的操作。最終將內(nèi)容成功添加到列表中。正確題庫(kù)記錄和錯(cuò)題記錄都是相同原理。
語(yǔ)法練習(xí)小游戲能夠充分讓孩子在娛樂中學(xué)習(xí),掌握更多的知識(shí),期待你的作品哦。