【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 randomclass 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.")
    

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Node.js -- HTTP协议和网络基础概念

文章目录 1. 初识HTTP协议2. 窥探HTTP协议2.1 请求报文结构2.2 响应报文 3. 网络基础概念3.1 IP3.2 端口 本节相关内容都可以在 添加链接描述进行查看,深入了解相关内容。 1. 初识HTTP协议 HTTP协议其实就是浏览器和服务器之间的一个协议,浏览器会向服务…

k8s学习(三十六)centos下离线部署kubernetes1.30(单主节点)

文章目录 服务器准备工作一、升级操作系统内核1 查看操作系统和内核版本2 下载内核离线升级包3 升级内核4 确认内核版本 二、修改主机名/hosts文件1 修改主机名2 修改hosts文件 三、关闭防火墙四、关闭SELINUX配置五、时间同步1 下载NTP2 卸载3 安装4 配置4.1 主节点配置4.2 从…

MyBatis-Plus分页查询IPage的使用方法,如何自定义分页查询功能?

目录 1. MyBatis-Plus 分页插件介绍 2. 准备工作-创建项目配置环境 2.1 创建数据库表Product商品表 2.2 创建Maven项目,创建包,接口,类 2.3 添加MyBatisPlus依赖和 Lombok 插件 2.4 编写 Configuration 分页插件配置文件 2.5 编写 app…

AJAX——事件循环(EventLoop)

1.事件循环(EventLoop) 概念:JavaScript有一个基于事件循环的并发模型,事件循环负责执行代码、收集和处理事件以及执行队列中的子任务。这个模型与其它语言中的模型截然不同,比如C和Java。 原因:JavaScri…

使用 FFMPEG 实现录屏和录音

FFmpeg 是一个非常强大的开源工具,它可以用来处理音频和视频。 要使用 FFmpeg 进行录屏和录音,需要首先确保你的系统已经安装了 FFmpeg。在大多数 Linux 发行版中,可以通过包管理器(如 apt 或 yum)来安装。在 Windows …

【Flask】Flask中HTTP请求与接收

一、接收http请求与返回响应 在Flask中,可以通过app.route装饰器来定义路由函数。 app.route(/BringGoods,methods [POST, GET]) GET请求:使用request.args.get(key)或者request.values.get(key)来获取URL中的参数。 POST请求: 使用req…

nginx配置挂载html

目标 很多软件的官方文档,在国内打开很慢,每次都得等很久,看到官方同时提供了html的包,所以想着挂载到本地nginx下,查看会方便很多。 下载官方html文档包,解压到documentation_htmls下 想添加新的文档也是…

【调制】π/4-DQPSK信号模型及其相关特性分析 【附MATLAB代码】

MATLAB代码 % pi/4-DQPSK modulation %输入一串数,输出经过差分并映射的I、Q两路数据 ​ function [I,Q]pi4_dqpskmod(data) ​ nlength(data)./2; data1data.*2-1; ​ Idatazeros(1,n); Qdatazeros(1,n); ​ ​ Idatadata1(1,1:2:2*n); %串并变换 Qdatadata1(…

yolo8目标检测+多目标跟踪算法实现车流量统计

目前常用的车流量统计方法包括基于虚拟区域和基于车辆跟踪的车流量统计方法,如下图所示。前者在视频帧中手动设定虚拟检测区域,通过判断虚拟检测区域的灰度值变化判断车辆是否经过,从而进行车流量统计。其中虚拟检测区域可以由点、线以及线圈…

如何理解自然语言处理中的位置编码(Positional Encoding)

在自然语言处理和特别是在使用Transformer模型中,位置编码(Positional Encoding)是一个关键的概念。它们的作用是为模型提供序列中各个元素的位置信息。由于Transformer架构本身并不像循环神经网络(RNN)那样具有处理序列的固有能力,位置编码因此显得尤为重要。 为什么需…

防爆轮式巡检机器人作用和优势?

在当今的工业领域,安全生产始终是至关重要的议题。而在一些具有爆炸风险的环境中,如石油、化工、燃气等行业,传统的人工巡检方式面临着诸多挑战。然而,随着科技的飞速发展,防爆轮式巡检机器人应运而生,为这…

(顶刊复现)基于配电网韧性提升的应急移动电源预配置和动态调度(上)—MPS预配置

参考文献: [1] Lei S , Chen C , Zhou H ,et al.Routing and Scheduling of Mobile Power Sources for Distribution System Resilience Enhancement[J].IEEE Transactions on Smart Grid, 2019:5650-5662.DOI:10.1109/TSG.2018.2889347. 这篇博客是上述SCI一区论文…

vue快速入门(三十四)组件data定义方法

注释很详细&#xff0c;直接上代码 上一篇 新增内容 数据绑定方法照常数据定义方法需要作为函数返回值 源码 MyTest.vue <template><div><h1>我的功德&#xff1a;{{merits}} </h1><button click"meritsnum1">功德加一</button>…

Linux - sed (stream editor) cp > bak备份 head

替换 my.yaml 的 ‘t’ 为 ‘AAA’ sed s/t/AAA/g my.yaml sed -n /^[as]/p my.yaml 这个命令的 -n 选项表示不自动打印每一行&#xff0c;/^[as]/p 是一个 sed 命令&#xff0c;/^[as]/ 是你想要匹配的正则表达式&#xff08;所有以 a | s 开头的行&#x…

sklearn 笔记 metrics

1 分类 1.1 accuracy_score 分类准确率得分 在多标签分类中&#xff0c;此函数计算子集准确率&#xff1a;y_pred的标签集必须与 y_true 中的相应标签集完全匹配。 1.1.1 参数 y_true真实&#xff08;正确&#xff09;标签y_pred由分类器返回的预测标签normalize 默认为 Tr…

A*B 问题

题目描述 输入两个正整数 A 和 B&#xff0c;求 AB 的值。注意乘积的范围和数据类型的选择。 输入格式 一行&#xff0c;包含两个正整数 A 和 B&#xff0c;中间用单个空格隔开。1≤A,B≤50000。 输出格式 一个整数&#xff0c;即 AB 的值。 输入输出样例 输入 #1 3 4 …

yolov8 区域声光报警+计数

yolov8 区域报警计数 1. 基础2. 报警功能2. 1声音报警代码2. 2画面显示报警代码 3. 完整代码4. 源码 1. 基础 本项目是在 yolov8 区域多类别计数 的基础上实现的&#xff0c;具体区域计数原理可见上边文章 2. 报警功能 设置一个区域region_points&#xff0c;当行人这一类别…

牛客NC195 二叉树的直径【simple DFS C++ / Java /Go/ PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/15f977cedc5a4ffa8f03a3433d18650d 思路 最长路径有两种情况&#xff1a; 1.最长条路径经过根节点&#xff0c;那么只需要找出根节点的左右两棵子树的最大深度然后相加即可。 2.最长路径没有经过根节点&#xf…

【Linux】对system V本地通信的内核级理解

一、system V版本的进程间通信技术 通过之前的学习&#xff0c;我们大致可以感受出来&#xff0c;共享内存&#xff0c;消息队列和信号量在使用的时候是有很多共性的。它们三个的接口&#xff0c;包括接口中传的参数有的都有很大的相似度。其实&#xff0c;共享内存&#xff…

Harmony OS应用开发性能优化全面指南

优化应用性能对于应用开发至关重要。通过高性能编程、减少丢帧卡顿、提升应用启动和响应速度&#xff0c;可以有效提升用户体验。本文将介绍一些优化应用性能的方法&#xff0c;以及常用的性能调优工具。 ArkTS高性能编程 为了提升代码执行速度&#xff0c;进而提升应用整体性…