一、设计要求
编写成语接龙游戏。利用给定的成语词典库文件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 方法:目标成语模式,玩家设定一个目标成语,然后从一个给定的字开始接龙,直到接到目标成语为止。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 成语接龙 ” 获取。👈👈👈
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.")
这个程序提供了不同难度的成语接龙游戏,可以让用户选择适合自己水平的游戏模式进行游玩。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 成语接龙 ” 获取。👈👈👈