Python实现成语接龙

文章目录 [ 隐藏 ]

开发之前

Python非常有意思,可以开发各种好玩的东西,而且代码很简洁。本文将指导大家怎样用Python实现成语接龙。我们将分为分为两个版本,一个是基础版,实现基本的成语接龙功能。还有一个是加强版,是在简易版上进行扩展,功能更为复杂且完善。

这个可以应用在很多方面,比如说聊天机器人,而且还可以结合itchat这个Python的微信接口玩出花样等等。

下面放实例:

开发环境:Windows

Python版本:3.x

外置模块准备:无

文件准备:成语库文件(例如我使用的是idiom.txt),当然也可以从网上抓取匹配成语,但效率相对要慢。本功能是完全可以在本地实现的。

文件链接:https://pan.baidu.com/s/1dFFyHQ5 密码:6eiv

文件内容图:

我整理出了共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_pinyin.txt”置于同一目录下,放个测试效果图:

大致实现就是这样,大家也可以自己在此基础上进行更多拓展,如结合我上一篇文章实现成语的语音输出,也是非常不错的。

实例结束,我的表演完了,谢谢大家!如果这篇文章对你有帮助,请在收藏的同时一赞支持,谢谢!光收藏不点赞的让我好心塞啊。

未经允许不得转载:Python在线学习 » Python实现成语接龙

赞 (7)

来吐槽吧 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址