请关注诛仙智能,数据之路诛仙智能。我们专注于商业智能BI、大数据、数据分析领域的垂直社区、学习、问答、求职一站式解决!这是用Python实现成语接龙游戏的具体开发教程。
Python实现这个功能非常容易,以下分为两个版本,一个是简易版,能够实现基本的功能。还有一个是拓展版,是在简易版上进行拓展,功能更为复杂且完善。这个可以应用在很多方面,比如说聊天机器人,而且还可以结合itchat这个Python的微信接口玩出花样等等。
下面放实例:
开发环境:Windows
Python版本:3.x
外置模块准备:无
文件准备:成语库文件(例如我使用的是idiom.txt),当然也可以从网上抓取匹配成语,但效率相对要慢。本功能是完全可以在本地实现的。
文件链接请登陆原文获取。
文件内容图:
我整理出了共11174个常用成语,不是很全但一般使用是没有问题的,你们也可以酌情自行添加补充。
简易版实例
实现原理大家可能也想到了,就是调用本地成语库进行字符串首尾条件匹配。
先说一下简易版成语接龙规则:
1.接龙的成语的第一个字必须要与前一个成语结尾的字相同
2.接龙的成语必须是四字成语
3.已使用过的成语双方均不得再次使用
4.一方不按照规则接龙或接不下去时判定失败
我将其功能用函数分解了,这样结构更加清晰也方便调试,源码(文件名为"idiom_s.py")及注释如下:
这就是简易版的全部内容,测试时将该程序"idiom_s.py"和成语库文件"idiom.txt"置于同一目录下,放个测试效果图:
拓展版实例
简易版的游戏规则略显严格,我们可以稍微对其进行点改变使其更加有趣。但原则上拓展版也必须兼容简易版的规则,这时我们可以用参数调节游戏规则。
拓展版成语接龙规则:
1.接龙的成语的第一个字必须要与前一个成语结尾的字相同(mode = 0); 接龙的成语的第一个字的拼音包括音调要与前一个成语结尾的字的拼音和音调相同(mode = 1);接龙的成语的第一个字的拼音字母(不包括音调)与前一个成语结尾的字的拼音字母相同(mode = 2)
2.接龙的成语必须是四字成语(opt = 0);接龙的成语可以不是四字成语(opt = 1)
3.已使用过的成语双方均不得再次使用
4.一方不按照规则接龙或接不下去时判定失败
可以看出拓展版的确对简易版做了比较大的拓展,还涉及汉字转拼音,实现详见我的另一篇文章:Python实现文字转语音功能 - 知乎专栏
下面展示源码(文件名为"idiom_p.py"):
这就是简易版的全部内容,测试时将该程序"idiom_p.py",成语库文件"idiom.txt"和汉字拼音文件"unicode_;置于同一目录下,放个测试效果图:
大致实现就是这样,大家也可以自己在此基础上进行更多拓展,如结合我上一篇文章实现成语的语音输出,也是非常不错的。
实例结束,我的表演完了,谢谢大家!如果这篇文章对你有帮助,请在收藏的同时一赞支持,谢谢!光收藏不点赞的让我好心塞啊。
本文摘自:知乎,作者:玉牙树 。