返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python编写简易的成语接龙游戏
  • 177
分享到

怎么用Python编写简易的成语接龙游戏

2023-06-29 09:06:34 177人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本文小编为大家详细介绍“怎么用python编写简易的成语接龙游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Python编写简易的成语接龙游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.游戏规则下

本文小编为大家详细介绍“怎么用python编写简易的成语接龙游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Python编写简易的成语接龙游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    1.游戏规则

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

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

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

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

    【举例】

    「海枯石烂」→「烂醉如泥」→「泥牛入海」

    ×不能接「海枯石烂」(出现重复)

    √可以接「海纳百川」

    2.正式敲代码

    2.1 模块导入

    import osimport sysimport randomfrom PyQt5.QtGui import *from PyQt5.QtWidgets import *

    2.2 读取txt数据

    self.idiom_data, self.valid_idioms = self.readData('data/data.txt') self.ai_answer = None

    2.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_idioms

    2.8 附完整的项目源码

    '''小程序名:成语接龙'''import osimport sysimport randomfrom 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.效果展示

    1 成语:龙腾虎跃 Part 1效果

    怎么用Python编写简易的成语接龙游戏

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

    怎么用Python编写简易的成语接龙游戏

    读到这里,这篇“怎么用Python编写简易的成语接龙游戏”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网Python频道。

    --结束END--

    本文标题: 怎么用Python编写简易的成语接龙游戏

    本文链接: https://lsjlt.com/news/323924.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • 怎么用Python编写简易的成语接龙游戏
      本文小编为大家详细介绍“怎么用Python编写简易的成语接龙游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Python编写简易的成语接龙游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.游戏规则下...
      99+
      2023-06-29
    • 基于Python编写简易的成语接龙游戏
      目录前言1.游戏规则2.正式敲代码2.1 模块导入2.2 读取txt数据2.3 界面设置2.4 电脑接龙2.5 重新开始新游戏2.6 成语是否合法2.7 读取成语的数据2.8 附完整...
      99+
      2024-04-02
    • 怎么利用Python编写简易版德州扑克小游戏
      小编给大家分享一下怎么利用Python编写简易版德州扑克小游戏,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!德州扑克简要介绍什么是德州扑克德州扑克不知道大家是否玩过,它是起源于美国的得克萨斯州的一种博弈类卡牌游戏,英文名叫...
      99+
      2023-06-29
    • 怎么用Matlab编写简易版连连看小游戏
      这篇文章主要介绍“怎么用Matlab编写简易版连连看小游戏”,在日常操作中,相信很多人在怎么用Matlab编写简易版连连看小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Matlab编写简易版连连看...
      99+
      2023-06-29
    • 利用c++编写简易版2048小游戏
      目录1、程序初始化2、画图操作3、字符控制4、判断游戏结束和游戏胜利别的不多说,先上效果图 我们都知道2048是个4 4的方格,为了方便数组下表我们生成5 5的数组,只用到1~4的...
      99+
      2024-04-02
    • 利用Python编写简易版德州扑克小游戏
      目录德州扑克简要介绍什么是德州扑克游戏规则简要介绍德州扑克游戏的python实现过程游戏初始化评选赢家游戏主题函数游戏体验与展示模块不足与后续改进德州扑克简要介绍 什么是德州扑克 德...
      99+
      2024-04-02
    • 怎么用Python编写一个简单的游戏
      本篇内容介绍了“怎么用Python编写一个简单的游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在这个系列中,我们要用不同的编程语言编写相...
      99+
      2023-06-15
    • 用Python写一个简易版弹球游戏
      目录1.创建游戏的主界面2.创建一个Ball球的类3.我们让球向上动起来4.让球能回弹5.增加球的运行方向6.增加小木板7.让木板可以移动8.增加球和木板的碰撞9.判断当球运动到底部...
      99+
      2024-04-02
    • 怎么使用c语言编写简单小游戏
      编写一个简单的猜数字小游戏的例子:```#include #include #include int main() {int ran...
      99+
      2023-08-31
      c语言
    • 利用Matlab编写简易版连连看小游戏
      这是一款MATLAB连连看小游戏,基本实现了连连看的功能,不过目前没有写出死局判定的模块,日后可能会对其进行改进。 游戏截图 游戏组装说明 我们的变量path输入的是图像包的相...
      99+
      2024-04-02
    • Python编写简易猜数字小游戏(附完整代码)
      Python编写简易猜数字小游戏(附完整代码) 猜数字游戏是一款非常经典的小游戏,本文将介绍如何使用Python编写一个简易的猜数字游戏,并提供完整的源代码。 首先,让我们了解一下游戏规则。游戏开始时...
      99+
      2023-09-23
      python java 开发语言
    • 利用C++编写简易宝可梦对战小游戏
      最近想到了用C++写个小时候课间嘴上玩的那种宝可梦游戏,先试写了个demo,只有早期的三个宝可梦和基础招式,感兴趣的朋友可以再自己添加,也没有各种物防特攻数值啥的,等以后会搞图形化界...
      99+
      2024-04-02
    • 利用Python写个简易版星空大战游戏
      目录前言一.游戏画面二.游戏结束画面三.游戏素材四.游戏代码五、核心代码1.导入模块2.动态星空背景函数3.不定时产生敌机函数4.飞碟的移动5.子弹的移动6.玩家射击函数7.播放背景...
      99+
      2024-04-02
    • 怎么使用Python编写诗词接龙程序
      诗歌语料库  首先,我们利用Python爬虫来爬取诗歌,制作语料库。爬取的页面如下:爬取的诗歌由于本文主要为试了展示该项目的思路,因此,只爬取了该页面中的唐诗三百首、古诗三百、宋词三百、宋词精选,一共大约110...
      99+
      2023-05-14
      Python
    • 如何使用Python写一个简易版弹球游戏
      这篇文章主要介绍如何使用Python写一个简易版弹球游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!先看一下我们的最终效果图我们分9步来讲解如何写这个小游戏1.创建游戏的主界面我们用Python的内置模块Tkint...
      99+
      2023-06-14
    • Python turtle编写简单的球类小游戏
      目录1. 前言2. 需求描述3. 制作流程3.1 初始化变量3.2 通用函数3.3 游戏角色函数3.4 让小球动起来4. 总结1. 前言 turtle (小海龟) 是&nb...
      99+
      2024-04-02
    • 基于Python编写简易版的天天跑酷游戏的示例代码
      写出来的效果图就是这样了: 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import random 写一下游戏配置 width = 1200...
      99+
      2024-04-02
    • 怎样用JavaScript编写一个简单的游戏
      这篇文章将为大家详细讲解有关怎样用JavaScript编写一个简单的游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。通过使用一个简单的游戏来练习一些基本的...
      99+
      2024-04-02
    • 怎么用Python+Pygame制作简易版2048小游戏
      这篇文章主要介绍了怎么用Python+Pygame制作简易版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python+Pygame制作简易版2048小游戏文章都会有所收获,下面我们一起来看...
      99+
      2023-06-29
    • 用python做简单的小游戏,如何用python写小游戏
      大家好,小编来为大家解答以下问题,初学者怎么用python写简单小游戏教程,如何用python编写一个简单的小游戏,今天让我们一起来看看吧! 1、python简单小游戏代码   1、Python猜拳小游戏代码:   2、import r...
      99+
      2023-09-08
      人工智能
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作