快捷搜索:  汽车  科技

成语接龙井底之蛙(成语接龙敢玩嘛)

成语接龙井底之蛙(成语接龙敢玩嘛)最后发现,我说的每个成语她都忍不住要去查一下啊哈哈哈!!!小编乱入:我的天呐,奇怪得知据说,跟我玩游戏的朋友偷偷作弊,拿了本《现代汉语词典》要跟我大战三百回合。成语接龙:"龙腾虎跃,该你了!" 什么?你立刻接上了「跃马弯弓」?确认过眼神,是高手没错了。 Hi~我是木木子,又见面了哇! 今天我带来了新技能解锁,没错,就是:「成语接龙」

导语

"胸藏文墨怀如谷,腹有诗书气自华"。 ——《和董传留别》

成语接龙是中华民族传统的文字游戏。

它历史悠久,是传统文字、文化、文明的一个缩影,也是老少皆宜的民间文化娱乐活动。

成语接龙井底之蛙(成语接龙敢玩嘛)(1)

成语接龙:"龙腾虎跃,该你了!" 什么?你立刻接上了「跃马弯弓」?

确认过眼神,是高手没错了。 Hi~我是木木子,又见面了哇! 今天我带来了新技能解锁,没错,就是:

「成语接龙」

据说,跟我玩游戏的朋友偷偷作弊,拿了本《现代汉语词典》要跟我大战三百回合。

最后发现,我说的每个成语她都忍不住要去查一下啊哈哈哈!!!小编乱入:我的天呐,奇怪得知

是成倍增长了!

成语接龙井底之蛙(成语接龙敢玩嘛)(2)

​​

认怂? 我会认怂吗?! 不存在的.

看我写一款成语接龙小程序 分分钟秒杀你~快来和我「成语接龙」吧~

正文

在这款成语接龙小游戏中 你会学到一些「新成语」,能边玩儿边学成语 最重要的还是能接触一款

编程 在玩儿中进步学习 成就感满满,又能学知识,你有闲暇时,跟隔壁老王可以一直玩一直玩哈

哈哈~

1) 游戏规则

下面我简单说说「成语接龙」游戏的基本规则,你很熟悉可以跳过这段,不熟悉就仔细看看:

①用四字成语的最后一个字起头,接出下一句成语,由此不断延伸;

②成语尾首相接的字,可以是同一个字,也可以是同音的字;

③一场游戏中,不应出现重复成语。

【举例】 「海枯石烂」→「烂醉如泥」→「泥牛入海」 ×不能接「海枯石烂」(出现重复) √可以接「海纳百川」

是不是超级简单?考验词汇储备量的时候到了~

2) 正式敲代码2.1 模块导入

import os import sys import random from PyQt5.QtGui import * from PyQt5.QtWidgets import *2.2 读取txt数据

self.idiom_data self.valid_idioms = self.readData('data/data.txt') self.ai_answer = None2.3 界面设置

self.setWindowTitle('成语接龙小程序-就差你了!') self.setWindowIcon(QIcon('data/02.png')) self.setFixedSize(600 200) self.user_input_label = QLabel('我方:') self.user_input_edit = QLineEdit() self.user_input_button = QPushButton('确定') self.ai_input_label = QLabel('电脑方:') self.ai_input_edit = QLineEdit() self.restart_button = QPushButton('重新开始') self.user_explain_label = QLabel('我方成语释义:') self.user_explain_edit = QLineEdit() self.ai_explain_label = QLabel('电脑方成语释义:') self.ai_explain_edit = QLineEdit() # 布局 self.grid = QGridLayout() self.grid.setSpacing(12) self.grid.addWidget(self.user_input_label 0 0) self.grid.addWidget(self.user_input_edit 0 1) self.grid.addWidget(self.user_input_button 0 2) self.grid.addWidget(self.user_explain_label 1 0) self.grid.addWidget(self.user_explain_edit 1 1 1 2) self.grid.addWidget(self.ai_input_label 2 0) self.grid.addWidget(self.ai_input_edit 2 1) self.grid.addWidget(self.restart_button 2 2) self.grid.addWidget(self.ai_explain_label 3 0) self.grid.addWidget(self.ai_explain_edit 3 1 1 2) self.setLayout(self.grid) # 按键绑定 self.user_input_button.clicked.connect(self.airound) self.restart_button.clicked.connect(self.restart)2.4 电脑接龙

def airound(self): idiom = self.user_input_edit.text() idiom = idiom.strip() if (not self.isvalid(idiom)) or (self.ai_answer and idiom[0] != self.ai_answer[0][-1]): QMessageBox.warning(self '成语输入错误' '你输入的成语不对哦 不可以耍小聪明哒!' QMessageBox.Yes | QMessageBox.No) else: self.user_explain_edit.setText('读音: %s; 含义: %s' % (self.valid_idioms[idiom][0] self.valid_idioms[idiom][1])) if idiom[-1] in self.idiom_data: answers = self.idiom_data[idiom[-1]] answer = random.choice(answers) self.ai_answer = answer.copy() self.ai_input_edit.setText(self.ai_answer[0]) self.ai_explain_edit.setText('读音: %s; 含义: %s' % (self.valid_idioms[answer[0]][0] self.valid_idioms[answer[0]][1])) else: QMessageBox.information(self '你赢啦' '电脑都接不上你的成语 你太厉害啦!' QMessageBox.Yes | QMessageBox.No)2.5 重新开始新游戏

def restart(self): self.ai_answer = None self.ai_input_edit.clear() self.ai_explain_edit.clear() self.user_input_edit.clear() self.user_explain_edit.clear()2.6 成语是否合法

def isvalid(self idiom): return (idiom in self.valid_idioms)2.7 读取成语的数据

def readData(self filepath): fp = open(filepath 'r' encoding='utf-8') idiom_data = {} valid_idioms = {} for line in fp.readlines(): line = line.strip() if not line: continue item = line.split('\t') if len(item) != 3: continue if item[0][0] not in idiom_data: idiom_data[item[0][0]] = [item] else: idiom_data[item[0][0]].append(item) valid_idioms[item[0]] = item[1:] return idiom_data valid_idioms2.8 附完整的项目源码

''' 小程序名: 成语接龙 源码基地见 ''' import os import sys import random from PyQt5.QtGui import * from PyQt5.QtWidgets import * '''成语接龙''' class IdiomSolitaire(QWidget): def __init__(self parent=None **kwargs): super(IdiomSolitaire self).__init__(parent) # 读取数据 self.idiom_data self.valid_idioms = self.readData('data/data.txt') self.ai_answer = None # 定义界面 self.setWindowTitle('成语接龙小程序-就差你了!') self.setWindowIcon(QIcon('data/02.png')) self.setFixedSize(600 200) self.user_input_label = QLabel('我方:') self.user_input_edit = QLineEdit() self.user_input_button = QPushButton('确定') self.ai_input_label = QLabel('电脑方:') self.ai_input_edit = QLineEdit() self.restart_button = QPushButton('重新开始') self.user_explain_label = QLabel('我方成语释义:') self.user_explain_edit = QLineEdit() self.ai_explain_label = QLabel('电脑方成语释义:') self.ai_explain_edit = QLineEdit() # 布局 self.grid = QGridLayout() self.grid.setSpacing(12) self.grid.addWidget(self.user_input_label 0 0) self.grid.addWidget(self.user_input_edit 0 1) self.grid.addWidget(self.user_input_button 0 2) self.grid.addWidget(self.user_explain_label 1 0) self.grid.addWidget(self.user_explain_edit 1 1 1 2) self.grid.addWidget(self.ai_input_label 2 0) self.grid.addWidget(self.ai_input_edit 2 1) self.grid.addWidget(self.restart_button 2 2) self.grid.addWidget(self.ai_explain_label 3 0) self.grid.addWidget(self.ai_explain_edit 3 1 1 2) self.setLayout(self.grid) # 按键绑定 self.user_input_button.clicked.connect(self.airound) self.restart_button.clicked.connect(self.restart) '''电脑接龙''' def airound(self): idiom = self.user_input_edit.text() idiom = idiom.strip() if (not self.isvalid(idiom)) or (self.ai_answer and idiom[0] != self.ai_answer[0][-1]): QMessageBox.warning(self '成语输入错误' '你输入的成语不对哦 不可以耍小聪明哒!' QMessageBox.Yes | QMessageBox.No) else: self.user_explain_edit.setText('读音: %s; 含义: %s' % (self.valid_idioms[idiom][0] self.valid_idioms[idiom][1])) if idiom[-1] in self.idiom_data: answers = self.idiom_data[idiom[-1]] answer = random.choice(answers) self.ai_answer = answer.copy() self.ai_input_edit.setText(self.ai_answer[0]) self.ai_explain_edit.setText('读音: %s; 含义: %s' % (self.valid_idioms[answer[0]][0] self.valid_idioms[answer[0]][1])) else: QMessageBox.information(self '你赢啦' '电脑都接不上你的成语 你太厉害啦!' QMessageBox.Yes | QMessageBox.No) '''重新开始''' def restart(self): self.ai_answer = None self.ai_input_edit.clear() self.ai_explain_edit.clear() self.user_input_edit.clear() self.user_explain_edit.clear() '''检测成语是否合法''' def isvalid(self idiom): return (idiom in self.valid_idioms) '''读取成语数据''' def readData(self filepath): fp = open(filepath 'r' encoding='utf-8') idiom_data = {} valid_idioms = {} for line in fp.readlines(): line = line.strip() if not line: continue item = line.split('\t') if len(item) != 3: continue if item[0][0] not in idiom_data: idiom_data[item[0][0]] = [item] else: idiom_data[item[0][0]].append(item) valid_idioms[item[0]] = item[1:] return idiom_data valid_idioms '''run''' if __name__ == '__main__': app = QApplication(sys.argv) client = IdiomSolitaire() client.show() sys.exit(app.exec_())3) 效果展示3.1 成语:龙腾虎跃 Part 1效果

成语接龙井底之蛙(成语接龙敢玩嘛)(3)

​3.2 成语:山清水秀 Part 2效果

成语接龙井底之蛙(成语接龙敢玩嘛)(4)

​总结

成语接龙小测试:看看大家的成语量词汇是不是够多吖~哈哈哈 大家顺着上一位地接下去 看接到几楼呀?!文章汇总里面更多类型的游戏等你来学习哈~

⛳完整的免费源码领取处:

如需完整的项目源码 素材源码基地见:#私信小编06#即可获取免费的福利!

你们的支持是我最大的动力!!记得三连哦~mua 欢迎大家阅读往期的文章哦~

文章汇总——

Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了~

成语接龙井底之蛙(成语接龙敢玩嘛)(5)

猜您喜欢: