陳新龍
成語接龍是中華傳統(tǒng)的文字游戲,有著悠久的歷史和廣泛的社會基礎,是我國文字、文化、文明的一個縮影。傳統(tǒng)的成語接龍的規(guī)則是用四個字的成語的最后一個字與下一句成語的第一個相同的字(音同也可以),首尾相接不斷延長,形成長龍。在成語接龍中,第一句的成語稱為龍頭句,該成語的第一個字稱為龍頭字,首尾相接的字稱為關節(jié)字。
講了這么多關于成語接龍的知識,我們能不能做一個成語接龍的小游戲呢?答案是當然可以,讓我們一起打開Scratch或者Mind+挑戰(zhàn)一下吧。
傳統(tǒng)的成語接龍需要前一個成語的最后一個字與后一個成語的第一個字的字形或字音相同,在使用Scratch實際編程時,因字音相同較難判定,為了編程方便,我們只要求字形相同就可以了。
這里肯定有人會好奇了,那么多成語如何拷入程序中呢?在Scratch中可以使用導入列表功能,新建一個文本文件,通過搜索查閱成語,將需要的成語以每行一個成語的形式保存。最后在Scratch新建一個列表,在列表中點擊鼠標右鍵,選擇導入成語文本,就會發(fā)現(xiàn)新建的列表中已經(jīng)儲存好成語詞匯了。
接著隨機從成語列表中挑選出第一個成語當作游戲的開始。游戲開始后根據(jù)提示用戶需要輸入正確的成語做出回答,當用戶回答的成語包含在成語列表中并且輸入成語的第一個字等于前一個成語的最后一個字,那么回答正確,可以繼續(xù)接龍。如果成語首字錯誤并且在成語列表中沒有相應的成語則自動判斷為失敗,由于成語列表的數(shù)據(jù)不夠完善,游戲體驗并不完美,這里大家也思考一下有沒有更加完善的判斷方法,期待你們更好的算法。
為了完善我們的游戲體驗,這里多增加一個判斷機制,在成語接龍中我們不允許重復的詞語出現(xiàn),比如:真真假假—假假真真—真真假假。為了避免這種重復我們需要增加判定的機制,新增加兩個變量“項數(shù)”和“是否有答案”?!绊棓?shù)”作為列表的成語順序默認等于1,“是否有答案”用于判斷該成語是否多次使用過,默認情況下為“無”代表著一次都沒有使用。
當用戶輸入的成語回答正確后,通過項數(shù)依次去查找成語是否在列表中,并且查看該成語是否已使用,如果成語沒有使用,將成語是否有答案變量設置為“有”,代表著成語已經(jīng)使用過了,不能再次使用,一旦用戶再次輸入同樣的成語系統(tǒng)自動判斷為游戲失敗。
如此有意思的成語接龍游戲,還不自己動手做一個嗎?期待你能收集一個足夠豐富的成語數(shù)據(jù)庫,并在原有代碼基礎上升級判定邏輯。