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