用python编写猜成语游戏,词语接龙python

作者:小小明原文链接:

https://blog.csdn.net/as604049322/article/details/118154687本文为读者投稿

在 https://GitHub.com/pwxcoo/chinese-xinhua 项目中可以下载到中华成语的语料库,该项目收录包括 14032 条歇后语,16142 个汉字,264434 个词语,31648 个成语。

结构如下:

chinese-xinhua/| - data/ 可以直接从网络读取该github的json文件:

import pandas as pdchengyu = pd.read_json("https://github.com/pwxcoo/chinese-xinhua/blob/master/data/idiom.json?raw=true")

不过有可能网络不佳导致读取失败,下载好之后读取本地文件更佳:

import pandas as pdimport numpy as npchengyu = pd.read_json("idiom.json")chengyu.head(2)

该库有很多列,word列是我们需要的成语,pinyin列已经帮我们转换出了对应的拼音。下面我们整理出我们需要的数据:

t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin", "weipin"]]chengyu

测试获取任意一个成语的接龙结果集:

word = "阿党比周"words = chengyu.index[chengyu.shoupin == chengyu.loc[word, "weipin"]]wordsIndex(['舟车劳顿', '舟水之喻', '舟中敌国', '诌上抑下', '侜张为幻', '周而不比', '周而复始', '周公吐哺', '周规折矩','周急继乏', '周郎顾曲', '周情孔思', '周穷恤匮', '周游列国', '诪张变眩', '诪张为幻', '粥少僧多', '粥粥无能'],dtype='object', name='word')

然后随机任取一个:

np.random.choice(words)'诪张为幻'

测试没有问题,我们可以写一个批量接龙程序:

word = input("请输入一个成语:")flag = Trueif word not in chengyu.index:print("你输入的不是一个成语,程序结束!")flag = Falsewhile flag:n = input("接龙的次数(1-100次的整数,输入任意字母表示结束程序)")if not n.isdigit:print("程序结束")breakn = int(n)if not (0 完整代码

import pandas as pdimport numpy as npchengyu = pd.read_json("idiom.json")t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin", "weipin"]]word = input("请输入一个成语:")flag = Trueif word not in chengyu.index:print("你输入的不是一个成语,程序结束!")flag = Falsewhile flag:n = input("接龙的次数(1-100次的整数,输入任意字母表示结束程序)")if not n.isdigit:print("程序结束")breakn = int(n)if not (0 我们还可以写一个与机器对战的成语接龙小游戏:

import pandas as pdimport numpy as npchengyu = pd.read_json("idiom.json")t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin", "weipin"]]is_head = input("是否先手(输入N表示后手,其他表示先手)")if is_head == "N":word2 = np.random.choice(chengyu.index)print(word2)weipin = chengyu.loc[word2, "weipin"]else:weipin = ''while True:word = input("请输入一个成语(认输或离开请按Q):")if word == "Q":print("你离开了游戏,再见!!!")breakif word not in chengyu.index:print("你输入的不是一个成语,请重新输入!")continueif weipin and chengyu.loc[word, 'shoupin'] != weipin:print("你输入的成语并不能与机器人出的成语接上来,你输了,游戏结束!!!")breakwords = chengyu.index[chengyu.shoupin == chengyu.loc[word, "weipin"]]if words.shape[0] == 0:print("恭喜你赢了!成语机器人已经被你打败!!!")breakword2 = np.random.choice(words)print(word2)weipin = chengyu.loc[word2, "weipin"]是否先手(输入N表示后手,其他表示先手)请输入一个成语(认输或离开请按Q):妙趣横生生米煮成熟饭请输入一个成语(认输或离开请按Q):饭来开口口呆目钝请输入一个成语(认输或离开请按Q):遁名匿迹计功谋利

由于成语积累量较少,几局就已经快玩不下去,于是我打算再写个成语查询器方便开挂后再上,而不是疯狂的百度,代码如下:

from gooey import Gooey, GooeyParserimport pandas as pdchengyu = pd.read_json("idiom.json")t = chengyu.pinyin.str.splitchengyu["shoupin"] = t.str[0]chengyu["weipin"] = t.str[-1]chengyu = chengyu.set_index("word")[["shoupin", "weipin"]]@Gooeydef main:parser = GooeyParser(description="成语接龙查询器 - @小小明")parser.add_argument('word', help="被查询的成语")args = parser.parse_argsword = args.wordif word not in chengyu.index:print("你输入的不是一个成语,请重新输入!")else:words = chengyu.index[chengyu.shoupin == chengyu.loc[word, "weipin"]]if words.shape[0] > 0:print("满足条件的成语有:")print("、".join(words))else:print("抱歉,没有找到能够满足条件的成语")print("-----" * 10)if __name__ == '__main__':main

这里我使用了Gooey,需要pip安装:

pip install Gooey

项目地址:https://github.com/chriskiehl/Gooey

体验一把:

点击start后:

要重新开始查询只需点击Edit按钮即可。Gooey支持的组件还挺多的,可以参考GitHub项目说明。虽然Gooey远不如专业的图形化框架专业,但对于简单的需求也挺简单便捷,能快速把命令行程序转换为图形化程序。

用python编写猜成语游戏,词语接龙python

成语接龙游戏

成语接龙,就是几个成语按照一定的规律连接成一条龙,它们有的首尾相连,如一刀两断、断章取义、义无反顾;有的谐音相连,如草木皆兵、冰天雪地、低眉顺眼;有的以数字相连。

成语接龙形式活泼,让成语变得简单易记。此外,书中还有成语的释义,并穿插了一些富于历史知识和教育意义的成语故事,让孩子读起来趣味盎然,受益匪浅。

扩展资料:

成语接龙游戏举例:

里外夹攻, 攻其不备, 备尝艰苦, 苦口婆心, 心乱如麻, 麻痹大意, 意望已过, 过河卒子, 子子孙孙,孙康映雪, 雪窑冰天, 天下莫敌, 敌国外患, 患得患失, 失张失志, 志骄气盈, 盈则必亏, 亏心短行,行家里手, 手高眼低, 低首下气, 气涌如山, 山吟泽唱, 唱筹量沙, 

沙鸥翔集, 集思广议, 议论纷纷,纷红骇绿 ,绿林豪客, 客死他乡, 乡壁虚造, 造谣生非, 非亲非故, 故甚其词, 词严义密, 密密层层,层出迭见, 见溺不救, 救难解危, 危如累卵, 卵覆鸟飞, 飞升腾实, 实蕃有徒 ,徒托空言, 言论风生,生死骨肉, 肉袒面缚, 缚舌交唇, 唇腐齿落, 落井下石, 石烂海枯, 枯鱼病鹤, 鹤困鸡群, 群蚁溃堤,堤溃蚁孔 ,孔武有力, 

力不胜任, 任重道远, 远走高飞, 飞鹰走犬, 犬牙相错, 错落参差, 差三错四,四体不勤, 勤学苦练, 练达老成, 成己成物 ,物尽其用, 用心竭力, 力排众议, 议不反顾, 顾曲周郎,郎才女貌, 貌离神合, 合从连衡, 衡门深巷, 巷尾街头, 头痛额热, 热情洋溢。

参考资料:成语接龙游戏-百度百科

用python编写猜成语游戏,词语接龙python

成语接龙游戏

成语接龙游戏:龙头字必须是主题词中的任意一个字,体现鲜明的活动主题;前后两句相接成语的关节字必须是同一汉字;成语必须由四个字组成;在同一龙头字下的成语不得有重复。

【例如】

胸有成竹 → 竹报平安 → 安富尊荣 → 荣华富贵 → 贵而贱目 → 目无余子 → 子虚乌有 → 有目共睹 → 睹物思人 → 人中骐骥 →骥子龙文 → 文质彬彬 → 彬彬有礼 → 礼贤下士 → 士饱马腾 → 腾云驾雾 → 雾里看花 → 花言巧语 → 语重心长 → 长此以往 →往返徒劳 → 劳而无功 → 功成不居 → 居官守法 → 法外施仁 → 仁浆义粟 → 粟红贯朽 → 朽木死灰 → 灰飞烟灭 ……

上一篇: 女销售原来靠这样卖房(楼盘置业顾问提成大概多少)
下一篇: 为什么会眼睛痛不容忽视4个原因值得深扒