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

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


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


目录

  • 【python】Python成语接龙游戏[1-3难度均有](源码+数据)
  • 一、设计要求
  • 二、功能展示
    • 2.1. 难度一
    • 2.2. 难度二
      • 2.3. 难度三
  • 三、代码分析


一、设计要求

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

请输入一个字:花
花明柳媚
眉清目秀
ok,请继续!
秀色可餐
ok,请继续!
参天大树
不对啊,请重新输入。输入回车自动接龙,输入0结束
参天古树
不对啊,请重新输入。输入回车自动接龙,输入0结束
0

成语文档如下:
在这里插入图片描述

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

要求完成如下内容:
【难度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 方法:目标成语模式,玩家设定一个目标成语,然后从一个给定的字开始接龙,直到接到目标成语为止。

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

  1. 主程序:

    • 创建 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.")
    

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

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

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

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

相关文章

平衡二叉树(AVLTree)

AVLTree 1、树的分类2、平衡二叉树2.1、构建一个平衡二叉树2.2、删除节点2.3、搜索方式2.3.1、广度优先搜索(BFS)2.3.2、深度优先搜索(DFS) 1、树的分类 树形结构是编程当中特别常见的一种数据结构。比如电脑中的文件管理系统就大…

模拟BACnet设备(八)

文章目录 前言模拟呼梯设备的功能前期准备——xml文件的编写创建工程,建立BACnet模拟设备如何将设备的对象列表打包发送呢?被订阅的属性值变化时,如何主动通知对方?读写属性值完整代码小结 前言 前面一到七篇,从理论&…

[Collection与数据结构] PriorityQueue与堆

1. 优先级队列 1.1 概念 前面介绍过队列,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,该中场景下,使用队列显然…

Rust - 引用和借用

上一篇章末尾提到,如果仅仅支持通过转移所有权的方式获取一个值,那会让程序变得复杂。 Rust 能否像其它编程语言一样,使用某个变量的指针或者引用呢?答案是可以。 Rust 通过 借用(Borrowing) 这个行为来达成上述的目的&#xff0…

深入探索GDB:Linux下强大的调试神器

目录 一、GDB简介:源码级调试的基石 二、GDB基础操作:从入门到熟练 启动与基本命令 三、GDB进阶功能:解锁更深层次的调试能力 1. 回溯追踪:洞察调用栈 2. 动态内存检测:揪出内存问题 3. 条件断点与观察点&#…

JavaSE——程序逻辑控制

1. 顺序结构 顺序结构 比较简单,按照代码书写的顺序一行一行执行。 例如: public static void main(String[] args) {System.out.println(111);System.out.println(222);System.out.println(333);} 运行结果如下: 如果调整代码的书写顺序 , …

C++:继承作业题

1. 关于以下菱形继承说法不正确的是( ) class B {public: int b;};class C1: public B {public: int c1;};class C2: public B {public: int c2;};class D : public C1, public C2 {public: int d;};A.D总共占了20个字节B.B中的内容总共在D…

PE文件格式

PE文件格式 PE头:DOS头DOS存根NT头NT头:文件头NT头:可选头 节区头.text(代码)(节区头).data(数据)(节区头).rdata.idata,导入表 最后给出一个PE文件的16进制编辑器中的截图,找到其中每一个头的信息,和导入表…

2015NOIP普及组真题 3. 求和

线上OJ: 一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid1971 核心思想: 本题的约束条件有两个: 条件1、colorx colorz 条件2、x、y、z的坐标满足 y − x z − y(即 y 在 x 和 z 的中心位置) …

scipy csr_matrix: understand indptr

See https://stackoverflow.com/questions/52299420/scipy-csr-matrix-understand-indptr

Esp8266 - USB开关分享(开源)

文章目录 简介推广自己gitee项目地址:嘉立创项目地址:联系我们 功能演示视频原理图嘉立创PCB开源地址原理图PCB预览 固件烧录代码编译烧录1. 软件和驱动安装2. 代码编译1. 安装所需要的依赖库文件2. 下载源代码3. 烧录代码 使用说明1. 设备配网2. 打开设备操作页面3…

NAT的知识点和实现

1.NAT的作用: (1)、把内网私网IP转换公网IP; (2)、隐藏内网,起到保护内网作用; (3)、适当的缓解的IPv4地址空间枯竭; (4&#xff…

[RTOS 学习记录] 复杂工程项目的管理

[RTOS 学习记录] 复杂工程项目的管理 这篇文章是我阅读《嵌入式实时操作系统μCOS-II原理及应用》后的读书笔记,记录目的是为了个人后续回顾复习使用。 前置内容: 工程管理工具make及makefile 文章目录 1 批处理文件与makefile的综合使用1.1 批处理文件…

Qt实现XYModem协议(五)

1 概述 XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K&am…

4月23号总结

java实现发送邮件 在做聊天室项目的时候&#xff0c;由于需要发送邮箱验证码&#xff0c;所以自己查找了这方面的内容。 首先需要在Maven里面依赖 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><versio…

英伟达AI系列免费公开课

英伟达公开课官网地址 Augment your LLM Using Retrieval Augmented Generation Building RAG Agents with LLMs langchain的workflow: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c90cb157c9c84bb5b3da380ec56f5c2a.png Generative AI Explained

Linux系统中安装MySQL

1、在电脑中安装虚拟机 2、df -h查看光盘是否挂载&#xff0c;没挂载用mount -o ro /dev/sr0 /media命令挂载 3、进入etc/yum.repos.d目录查看仓是否配置&#xff0c;若配置进行下一一步&#xff0c;未配置则进行配置 配置软件仓库 [rootlocalhost yum.repos.d]# vim rhle.r…

Linux中文件描述符与重定向的深入探索

目录 1. 理解C语言的文件操作函数 2. 操作系统的文件操作接口 3. 文件描述符详解和其内核本质 4. 如何理解Linux下一切皆文件 5. Linux中的重定向 5.1 输出重定向 5.2 追加重定向 5.3 输入重定向 6. 结合文件描述符理解重定向 7.重定向的系统调用 在Linux操作系统中&a…

springboot整合mybatis-plus模版

1.创建springboot项目 Maven类型Lombok依赖Spring Web 依赖MySQL Driver依赖pom.xml&#xff1a;<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/…

上门废品回收小程序,互联网回收拥有哪些特点?

随着社会的进步&#xff0c;人们的生活水平不断提高&#xff0c;产生的可回收物也在不断上升&#xff0c;每年垃圾站都能产生大量的可回收物&#xff0c;这也造成了资源的浪费。 目前&#xff0c;加快发展回收模式&#xff0c;提高我国回收效率成为了当下回收市场发展的重要方…