陳新龍
暑假來臨了,這意味著我們有更多可以自由支配的時間,不知道大家如何復習英語呢?為了能夠更加有效地復習英語知識,我決定用Scratch編寫一個have/has專項練習小游戲。編寫完成后,找弟弟做實驗,他利用碎片時間玩了十多次,做題的正確率就從35%提升到了95%,效果還是不錯的,下面和大家分享一下代碼吧(圖1)。

尋找英語有關have/has的語法專項練習題,新建兩個文本文件,將英語語法題目和答案分別添加到這個文本中,例如:You (have/has) a nice father。收集題目時可以使用表格文件統一存儲問題和答案,再提取到兩個文本中。
為什么要添加到文本文件中呢?主要有兩個原因,首先Scratch有文本導入功能,可以把文本文字導入到對應列表中。其次是文本文件容易增刪改查,可以大大提高題目收集整理的效率,以后也容易移植用于其他練習。
在做準備工作的同時,給大家講解一下這個程序的運行效果:小貓會從題庫文本中隨機挑選一道語法題目進行詢問,彈出輸入框填寫是haveor has。當用戶輸入正確的答案時,答對數加一,如果輸入錯誤的答案,答錯數加一。并且做過的題目都會歸類到正確和錯誤兩個記錄列表中,在同學們做完訓練后還可以根據數據做出針對復習。
首先我們將題庫文本導入到題庫列表中,將對應的答案導入答案列表(圖2)。

程序運行后,先從題庫列表中通過隨機變量I,隨機挑選一道語法題目顯示出來,請用戶輸入答案,如果用戶輸入的答案與答案列表中的答案項(have/has)是一致的,恭喜回答正確,答對數加一,將題目添加到正確題目記錄列表中;如果回答錯誤,答錯數加一,并且將題目添加到錯題記錄中(圖3)。

將題目中的語法句子輸入到記錄列表時需要解決這個程序的難點之一:需要將原題庫中的問題選項(have/has)替換正確的答案選項(have or has二選一)。替換的算法我選擇了一種普通易懂的方法,通過左右括號找到答案選項,你還可以想一想是不是還有更高效的方法(圖4)。

先將題庫中的一項語法題目添加到句子變量中,并且設置兩個變量左括號和右括號。通過循環提取句子中的每個字符,記錄下左括號的位置和右括號的位置。確定括號位置之后我們可以將整體的內容分成三大部分,左括號前的內容+正確答案(have or has二選一)+右括號后的內容。
再通過三次循環遍歷的方法提取出三個部分的內容,請配合代碼理解這一步的操作。最終將內容成功添加到列表中。正確題庫記錄和錯題記錄都是相同原理。
語法練習小游戲能夠充分讓孩子在娛樂中學習,掌握更多的知識,期待你的作品哦。