【Python小程序】这款成语接龙小程序,让小孩儿轻松记住500个成语,在家里常玩,语文直上135,仅此一份,快收藏~(太强大了)

news/2024/4/27 3:33:20/文章来源:https://blog.csdn.net/xy258009/article/details/129247410

前言

学习路上,那我同行。

哈喽~大家晚上好呀,我是你们的栗子同学。

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

成语接龙是一个传统的文字游戏。很多孩子都喜欢玩。多玩成语接龙不仅可以增长知识,还可

以开动脑筋,在玩的同时掌握了不少词汇。

词汇是语文考试中最基本的模块,成语的积累一方面可以帮助孩子提升语文的基本功,另一方

面也对于孩子的语文作文提升大有裨益,单纯的成语记诵枯燥乏味,难以让孩子提起兴趣,也

很难记住,成语接龙是一种不错的娱乐方式,游戏娱乐的同时。

帮助孩子记忆了大量的成语词汇,小编今天就整理了一些成语接龙,可以回去和孩子玩,一边做游

戏一边涨知识,一举两得哦!

今天来给大家来给大家写一款成语接龙小游戏啦,期待嘛!?

总的是分为一款简单的成语接龙小程序+一款Python基于PyQt5 GUI有界面的成语接龙,两款

代码随你挑选啦。

和孩子一起来玩成语接龙游戏吧,保证你停!不!下!来!

正文

一、准备环境

1)环境安装

本文用到的环境如下——

 Python3、Pycharm社区版,自带的库只 要安装完 Python就可 以直接使用了,

需要安装 的库的话看教程下🎐 

 一般安装:pip install +模块名 镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名 (之前有说过安装报错的几种方式跟解决方法,不会安装的可以去看下,还有很多国内镜像源 也有文章的)

2)准备文字素材

需要提前准备好相应的成语接龙的文本文字素材。

二、简易成语接龙小程序

1)主程序

#下列以"'a'bao'zhi'gong 阿保之功\n"做实例#处理一个成语手册中一行获得其开头|a
def GetHead(line):return line.split("'")[1]#处理一个成语手册中一行获得其结尾|gong 阿保之功
def GetEnd(line):return line.split("'")[-1].rstrip('\n')#处理一个成语手册中一行导入成语字典
def SetIn(line,dic):Head=GetHead(line)End=GetEnd(line)#若成语字典中尚且没有这个值,就为之新建一个列表if dic.__contains__(Head)==False:dic[Head]=[]dic[Head].append(End)#获得一个列表中的随机一个
def GetRandom(array):return array[int(random.random()*len(array))]#判断一个字符串是不是成语
def GetKey(Dic,string):for Head, End in Dic.items():for item in End:if item[-4:]==string:return Headreturn ''#打开成语手册
f=open(r'四字成语.txt')#逐行读取手册,将其中有价值的信息提取到ChengYus中
#ChengYus={‘a’:['gong 阿保之功','lao 阿保之劳',...],'ai':[...]}
Dic={}
while True:line = f.readline()     #读到末尾暂停if line == "":breakSetIn(line,Dic)
#关闭文件
f.close()#PlayTheGame
import random
#第一个
Head=GetRandom(list(Dic.keys()))
End=GetRandom(Dic[Head])
print('您好,我是机器人Garry,来和我玩成语接龙吧,我先来:'+End[-4:]+'\n'+\'您需要接'+End[-1]+' '+End.split()[0])
#之后每一组
while True:#接受用户的输入,直到用户输入对为止while True:User_Input=input()Key=GetKey(Dic,User_Input)if Key!='':break;    User_Input=print('您输的好像不是成语呢')End=GetRandom(Dic[Key])print('这个难不倒我'+End[-4:]+' '+End.split()[0])

2)效果展示

三、界面化成语接龙小程序

1)主程序

'''
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, 400)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 = Noneself.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: continueitem = line.split('\t')if len(item) != 3: continueif 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_())

2)效果展示

总结

这款界面化小程序,成语接龙还有成语释义的哦~边学习还可以记住意思啦~

感觉特别适合小孩子玩儿。边玩儿边学习岂不快哉~成语接龙大汇总,收藏陪孩子玩吧!

✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~

 🔨推荐往期文章——

项目1.0   小说下载神器(GUI界面化小程序) Python实战之小说下载神器(完结)今天教你如何白拿一款代码版资源丰富的小说下载器GUI界面编程,海量资源免费看~(追书必备神器)

项目0.6  【Python小程序】隐藏表白图:“你永远都不知道我喜欢你”(建议保存)

 项目0.7  诗句填空小程序【Pygame小游戏】史上最全:《唐诗三百首》合集,每一首都是精华,果断收藏~(学诗+锻炼记忆+Python诗句填空小程序上线啦)

项目0.3 【Python代码调试版】《女儿情》来啦:悄悄问圣僧,女儿美不美?

项目0.4   Python教程:去除背景,我保证不动她一根头发(附多种方式)

🎁文章汇总——

Python文章合集 | (入门到实战、游戏、Turtle、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75029.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lesson9---回归问题

9.1 机器学习基础 课程回顾 Python语言基础Numpy/Matplotlib/Pandas/Pillow应用TensorFlow2.0 低阶API 即将学习 机器学习、人工神经网络、深度学习、卷积神经网络典型模型的TensorFlow2.0实现 9.1.1 机器学习 机器学习(Machine Learning)&#xf…

关于C语言中最大公因数的思考

目录 如何去求最大公因数利用枚举法: 如何去求最大公因数利用辗转相除法: 例1:最大公因数使用for循环和if语句 示例2:最大公因数使用while循环和if ... else语句 例3:正负数均为最大公因数 如何去求最大公因数利用…

【2023-02-27】349.两个数组的交集

题目链接&#xff1a;349.两个数组的交集 解题思路&#xff1a;点我 class Solution { public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int>res_set;unordered_set<int>nums1_set(nums1.beg…

qt-c++进阶1-window、linux下获取本机所有网卡ip信息、根据网卡名获取ip地址。

系列文章目录 例如&#xff1a;第一章 主要是通过qt-c实现获取本机电脑的网卡信息或者是IP信息 文章目录系列文章目录前言一、获取本机网卡IP信息1.1 获取ip地址方法1.2 代码实例总结前言 总结c获取本机网卡信息的方法 第一章&#xff1a;适用于windows操作系统、linux操作系…

Aspose.Slides for .NET 授权须知

Aspose.Slides是一款用于生成&#xff0c;管理和转换PowerPoint幻灯片的本机API&#xff0c;可以使用多种格式&#xff0c;而不需要Microsoft PowerPoint。并且可在任何平台上操作PowerPoint演示文稿。 Aspose.Slides for .NET是一款.NET PowerPoint管理API&#xff0c;用于读…

常用逻辑运算符

逻辑符号表格 逻辑符号含义描述&按位与将数字转成二进制计算&#xff0c;两个位都为1时&#xff0c;结果才为1|或两个位都为0时&#xff0c;结果才为0 &#xff0c;反知任何一个为1结果为1^异或两个位相同为0&#xff0c;不同为1<<左移整体二进位全部左移若干位&…

webrtc音视频通话(一)搭建turn服务器

全球定位&#xff1a;webrtc音视频通话&#xff08;一&#xff09;搭建turn服务器webrtc音视频通话&#xff08;二&#xff09;简单音视频通话webrtc音视频通话&#xff08;三&#xff09;整合websocket在学习webrtc之前呢&#xff0c;需要对websocket有一定基础&#xff0c;如…

腾讯云卖向“有币”区块链

曾经坚决“不涉币”的腾讯云将业务延伸向“有币区块链”。 在首届 Web3 全球峰会“腾讯云Web3构建日”上&#xff0c;腾讯云宣布进军Web3&#xff0c;并公开了与Ankr、Avalanche、Scroll和Sui 四个原生区块链项目的合作&#xff0c;其中前两个项目都发行了加密货币&#xff0c…

比特数据结构与算法(第四章_中_续②)堆解决Topk问题(最小的k个数)

TopK问题介绍&#xff1a;在N个数中找出最大/小的前K个 &#xff08;比如在1000个数中找出最大/小的前10个&#xff09;以前的方法&#xff1a;冒泡排序。时间复杂度&#xff1a; O(N^2)现在找最大的k个数的方法&#xff1a;方法1&#xff1a;堆排序降序&#xff0c;前N个就是最…

使用非对称加密(RSA) 实现前端加密后端解密

数据加密方式有&#xff1a; 单向加密、对称加密、非对称加密、加密盐、散列函数、数字签名。 1、单向加密 单向加密通过对数据进行摘要计算生成密文&#xff0c;密文不可逆推还原。只能加密&#xff0c;不能解密&#xff0c;常用于提取数据的指纹信息以此来验证数据的完整性…

JVM内存溢出与内存泄露

1. 什么是内存溢出? 当前创建的对象的大小大于可用的内存容量大小&#xff0c;发生内存溢出。2. 什么是内存泄露? 该回收的垃圾对象没有被回收&#xff0c;发生了内存泄露&#xff0c;垃圾对象越堆越多&#xff0c; 可用内存越来越少&#xff0c;若可用内存无法存放新的垃圾…

Tcpdump抓包验证zookeeper的心跳机制

一、背景 在分布式系统中&#xff0c;zookeeper可以作为服务注册中心&#xff0c;所有提供服务的节点都可以在zookeeper上面注册&#xff0c;并作为一个node被组织起来&#xff0c;如下图&#xff1a; 在RPC框架中&#xff0c;这些服务提供者就是RPC服务的提供者。zookeeper注…

185、【栈与队列】leetcode ——496. 下一个更大元素 I:单调栈-哈希表(C++版本)

题目描述 原题链接&#xff1a;496. 下一个更大元素 I 解题思路 本题与 739. 每日温度 的区别在于&#xff0c;需要先通过让nums1与nums2判定出为想等元素后&#xff0c;再去找nums2中更大的数。 因此&#xff0c;第一步需要找到想等数&#xff0c;第二步需要找到大于的数。…

c++之引用

目录 引用的概念 引用做函数参数 引用的本质 常引用 引用的概念 在c中新增加了引用的概念&#xff0c;引用可以看作一个已定义变量的别名。 引用的语法&#xff1a;Type &name var; int main() {int a 10;int &b a;printf("b%d\n", b);printf(&quo…

第四阶段02-酷鲨商城项目Mybatis相关的配置

14. 添加与Mybatis相关的配置 在每个项目中&#xff0c;当需要使用Mybatis实现数据库编程时&#xff0c;都需要添加2项一次性配置&#xff1a;配置Mapper接口所在的包&#xff08;package&#xff09;、配置XML文件在哪里。 关于配置Mapper接口所在的包&#xff0c;可以&…

【一】kubernetes集群部署

一、docker环境搭建 1、移除以前docker相关包 sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine2、配置yam源 sudo yum install -y yum-utilssudo yum-config-manager --ad…

C++进阶--二叉树编程题

文章目录力扣606. 根据二叉树创建字符串力扣102. 二叉树的层序遍历力扣236. 二叉树的最近公共祖先JZ36 二叉搜索树与双向链表力扣105--通过前序和中序遍历构造二叉树力扣144--二叉树的前序遍历&#xff08;非递归&#xff09;力扣94--二叉树的中序遍历&#xff08;非递归&#…

虹科新闻|虹科与iX systems正式建立合作伙伴关系

近日&#xff0c;虹科与美国iXsystems公司达成战略合作&#xff0c;虹科正式成为iXsystems公司在中国区域的认证授权代理商。未来&#xff0c;虹科将携手iXsystems&#xff0c;共同致力于提供企业级存储解决方案。虹科及iXsystems双方的高层领导人员都对彼此的合作有很大的信心…

操作系统基础教程

目录 第二章&#xff1a;处理器管理 概览 进程调度的层次 进程的调度方式&#xff1a; 调度的评价标准&#xff1a; 典型的调度算法&#xff1a; 第三章&#xff1a;同步、通信和死锁 什么是进程同步&#xff1f; 什么是进程互斥&#xff1f; 进程同步的实现方式 进程…

JVM总结

1. 内存结构 线程私有区 程序计算器 作用&#xff1a;是一块较小的内存空间&#xff0c;存储的是当前线程所执行的字节码文件的序号特点&#xff1a;线程私有&#xff0c;不会出现内存空间溢出 虚拟机栈 虚拟机栈是管理JAVA方法执行的内存模型&#xff0c;每个方法执行时都…