【python】Python成语接龙游戏[1-3难度均有](源码+数据)【独一无二】

简介: 【python】Python成语接龙游戏[1-3难度均有](源码+数据)【独一无二】

一、设计要求

编写成语接龙游戏。利用给定的成语词典库文件idiom.txt,完成如图所示的基本功能。


请输入一个字:花

花明柳媚

眉清目秀

ok,请继续!

秀色可餐

ok,请继续!

参天大树

不对啊,请重新输入。输入回车自动接龙,输入0结束

参天古树

不对啊,请重新输入。输入回车自动接龙,输入0结束

0


成语文档如下:

56282d73a1b4475a96e1dd9b14435382.png


👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 成语接龙 ” 获取。👈👈👈


要求完成如下内容:

【难度1级】生成人机对话的接龙过程,完成接龙成语判定,回车自动接龙,按0结束基础功能。

【难度2级】在难度1级的全部功能基础上,接对部分+1分,机器提示部分+0分,显示最后总积分。

【难度3级】在难度1级和2级的基础上,输入第1个字不能是“tian”字音,最终接龙目标为“天天向上”,对于机器提示部分最多3次,人的接龙部分最多30次。若接龙成功,显示祝贺和积分。若接龙失败,显示鼓励和积分


二、功能展示

2.1. 难度一

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 成语接龙 ” 获取。👈👈👈


2.2. 难度二


2.3. 难度三

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 成语接龙 ” 获取。👈👈👈


三、代码分析

代码定义了一个成语接龙游戏的类 IdiomSolitaireGame,它包含了三种不同的游戏模式,根据用户选择的难度,会调用不同的游戏方法。


1.导入模块和定义文件头部信息:

  • 导入了 random 模块用于随机选择成语。
  • 文件头部包含了项目名称、文件名、时间、作者等信息。


2.IdiomSolitaireGame 类的定义:

  • __init__ 方法:初始化游戏对象,加载包含成语的文件。
  • load_idioms 方法:从文件中加载成语和对应的拼音。
  • find_next_idiom 方法:根据给定的最后一个字母找到下一个成语。
  • get_pinyin_first_char 方法:获取拼音的第一个字母。
  • 三种不同游戏模式的方法:play_basic, play_with_score, play_target,分别对应基础模式、带积分的模式和目标成语模式。


3.游戏模式方法的功能:

  • play_basic 方法:基础模式,玩家输入一个字,程序随机选择一个以该字开头的成语,然后玩家继续接龙。
  • play_with_score 方法:带积分的模式,与基础模式类似,但玩家每接对一个成语得一分,并在游戏结束时显示总分。
  • play_target 方法:目标成语模式,玩家设定一个目标成语,然后从一个给定的字开始接龙,直到接到目标成语为止。


👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 成语接龙 ” 获取。👈👈👈


4.主程序:

  • 创建 IdiomSolitaireGame 的实例。
  • 根据用户选择的难度调用相应的游戏方法。
import random


class IdiomSolitaireGame:
    def __init__(self, filename):
        self.idioms = self.load_idioms(filename)

    def load_idioms(self, filename):
        with open(filename, 'r', encoding='utf-8') as file:
            idiom_dict = {}
            for line in file:
                parts = line.strip().split('\t')
                if parts:
                    # 其余程序略...
                    # 其余程序略...
                    # 其余程序略...
                    # 其余程序略...
                    # 其余程序略...
    # 其余程序略...
    # 其余程序略...
    
if __name__ == "__main__":
    game = IdiomSolitaireGame("idiom.txt")
    level = int(input("请选择游戏难度(1-3):"))
    if level == 1:
        game.play_basic()
    elif level == 2:
        game.play_with_score()
    elif level == 3:
        game.play_target()
    else:
        print("无效的难度选择,请重新运行程序选择1, 2, 或 3.")


这个程序提供了不同难度的成语接龙游戏,可以让用户选择适合自己水平的游戏模式进行游玩。


👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 成语接龙 ” 获取。👈👈👈

相关文章
|
19天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
17天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
24天前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
1月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
45 3
|
1月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
28 1
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
1月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
76 0
|
1月前
|
数据采集 存储 分布式计算
超酷炫Python技术:交通数据的多维度分析
超酷炫Python技术:交通数据的多维度分析
|
1月前
|
索引 Python
SciPy 空间数据1
SciPy 通过 `scipy.spatial` 模块处理空间数据,如判断点是否在边界内、计算最近点等。三角测量是通过测量角度来确定目标距离的方法。多边形的三角测量可将其分解为多个三角形,用于计算面积。Delaunay 三角剖分是一种常用方法,可以对一系列点进行三角剖分。示例代码展示了如何使用 `Delaunay()` 函数创建三角形并绘制。
34 0
下一篇
DataWorks