用python实现词语接龙游戏
最近,3岁多的女儿很喜欢玩词语接龙。想一想,这个游戏可以通过刚学的python在电脑上实现。
首先是要整理词语库,最好不要太生僻的词语,要够多,才能经得起比赛。经过上网一番查找,选择了了语料库在线http://corpus.zhonghuayuwen.org下的现代汉语语料库词频表。进行简单的整理,去掉了单字,形成了cword.txt文件,共约1万多个词语,对付小朋友应该够了吧。
由于刚学python没几天,又是很简单的一个程序,没有用到面向对象的方法(其实是还没有学会),通过简单的过程实现了。几点说明:
- 为了防止总是重复的回答,电脑先是在库中找到全部符合条件的词语,然后随机选一个回答。
- 采用tkinter作为GUI, 曾在VS code下消除了每一个警告,所以import时把每一个用到属性都写进去了,其实用*号就可以了。
- 增加了答题记录,有助于回顾答题过程。
- 增加对接龙规则一些验证。
这段代码还有很多可以改进的地方,比如一些变量设置不尽合理,可以增加禁示词语的重复和无限循环、可以学习人类输入的新词、可以设置难度,让电脑故意输出较难接的词语、可以设置答题的时间等功能,界面也丑得可以。如果词库改为为诗词库,还可以变换成“诗词接龙”、“飞花令”等诗词游戏。希望有兴趣的朋友可以改进这段代码。
代码和cword.txt文件已经上传,通过审核后就可以下载了。
from tkinter import Tk, Label, Button, Text, StringVar, Entry, mainloop, BOTTOM, END
from tkinter.messagebox import *
import random
def wordinit():
global word_list, word_len
with open( "cword.txt", mode='r', encoding='UTF-8') as word_file:
word_list = word_file.readlines()
word_len = len(word_list)
def findword():
global word_list,word_len,record,first_word, word_result
find_it = False
record = ''
print(word_result)
word_example=[]
letter