用Python实现古诗词填字游戏(三)

【Pygame小游戏】史上最全:《唐诗百首》合集,每一首都是精华,果断收藏~(学诗+锻炼记忆+Python诗句填空小程序上线啦) 这款诗词填空小游戏还挺有趣的吧~不仅能学习诗词还能加深大家的记忆里,锻炼脑力!如果是学生的话这个游戏挺适合的啦!学习诗词边学边玩儿啦😁。 阅读详情

        我们在上上篇博客中准备好了输入,在上一篇中准备好了输出,于是我们来到了最关键和最核心的部分——选出诗句和共同字,同时确定输出位置。

程序的思路很清晰:

a. 从输入中读入诗句内容,保存在一个list中,以便反复使用

b. 为了增加趣味性,使用随机数,确定第一句诗以及第一个共同字(这样可以确保每一次的输出都不一样,但也产生了不能成功输出的风险)

c. 根据确定的共同字,找到下一句包含该共同字的诗文,同时在此句中随机选定下一个共同字

d. 找到包含第二个共同字的诗句

        同时,在每次确定输出诗句的时候,要对应给出输出坐标。第一、三句应水平输出,第二句竖直输出。这里多做一点说明,PosPro将屏幕左上角作为原点,向右为x正方向,向下为y正方向,初始坐标为(0,0),每个中文字符占一个坐标位,所以最后输出的字符x,y坐标都应该大于等于0。


程序分析:

1)首先是一些全局变量

NUMofPOEM=1500 #可以自定义的值,即“诗库”中总共有多少诗(也即多少行)
MAXLINES=3 #最多出现的诗句数

allPoems=[] #记录所有读入的诗句
usedPoems=[] #int构成的list,保存的是已用过的诗句编号
keyCharList=[] #记录每个关键字(被略去的字)的值及坐标:(char,x,y)
outputLines=[] #记录每一个输出的诗句,每个元素都是[x,y,char]的形式
coordinateFirstChar=[] #对于每个待输出的句子,记录其首字坐标(x,y)
coverLetter=('?','#','¥','%') #用以替换掉关键字的字符,PosPro says:注意都是中文符号!!


2)程序主体部分:调用函数完成:找第一句,第二句,第三句的任务,整理坐标后,输出。(嗯?听起来像废话?)
#把所有诗句保存在allPoems中,以方便后续多次查找
#singleLine.txt中每一行都是一首诗:包括编号、标题、作者、诗句内容
#txt中每一部分以Tab隔开
with open('singleLine.txt',encoding='gbk',errors="ignore") as f:
	for line in f:
		line=line.rstrip()
		newList=list(line.split('\t'))
		allPoems.append(newList)

randomNum=random.randint(1,NUMofPOEM)
for l in allPoems:
	if randomNum==int(l[0]): #根据随机数,随机选出一首诗
		usedPoems.append(randomNum)  
		#usedPoem中保存的是已试用过的诗句编号,注意检查避免重复
		getRandomFirstChar(l[3:]) 
		#l[0]为索引,l[1]题目,l[2]作者
		#l[3:]表示只分析其诗句部分
		break

cnt=2 #
【习题5】用Python完成新建文档写古诗+复制 文章目录优点答案注意 优点 根据课程进度编写,绝无超前知识或复杂代码块 答案 # 写古诗 f = open("gushi.txt", "w", encoding="utf-8") f.write(""" 静夜思 李白 床前明月光,疑是地上霜。 举头望明月,低头思故乡。""") f.close() # 复制 f = open("gushi.txt", "r", encoding="utf-8") m = open("copy.txt", "w", encoding= 阅读详情

相关推荐

Python制作句子挖空默写本

挖空记忆是一种常见的默写和背诵方法,可用于训练知识检索和提取的能力,也能检测自己对需要记忆的内容是否完全掌握,减少对书本的依赖。不仅可以用于古诗词的前后句回想,也可以“涂黑”一句话中的关键词,尝试上下文联想。但这种填空题的制作实操比较麻烦,如果想对一句话实现几种不同的挖空,比如古诗中的前后句记忆,既想看见上句接下句,又想根据下句考察上一句有没有记牢,那么就要分开制作两次。停顿更多、篇幅更长的就更不用想了。年纪大了总觉得知识记不住,主流的卡片式记忆软件也用的不太顺手,就想到了用代码帮我制作默写本的方式。

sinat_34326100的博客 1305

hangman_game:使用填字游戏单词列表的Python中的简单hangman(猜单词)游戏

hangman_game 使用填字游戏单词列表的Python中的简单word子手(猜单词)游戏 单词表 填字游戏单词列表取自与他的书Think Python (第二版)相关的Allen Downey的代码示例存储库。 。 游戏玩法 从words.txt(填字游戏单词列表)的列表中随机选择一个单词。 向用户提供单词的长度,并询问用户应允许多少不正确的猜测。 用户继续猜测。 每次猜测之后,都会更新有关单词的已知信息,为用户提供以前的猜测的更新列表,并为用户提供有关他们还剩下多少个猜测的更新信息。 如果用户在猜错单词之前猜出单词中的所有字母,则会获胜。 否则,用户将失败。 去做 提供屏幕更新 创建简笔画风格的子手图形(可能需要限制用户输入有关允许多少不正确猜测的限制)。

Python实现古诗词填字游戏(一)

古诗词填字游戏是一项很有趣的活动,在这里Mr. PosPro用Python写了一个小程序,可以生成简单的填字游戏

PosPro的专栏 1万+

chatgpt赋能pythonPython怎样模拟成语填空游戏

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

suimodina的博客 768

Python matplotlib label设置斜体字符

Python matplotlib label设置斜体

qq_39966944的博客 9191

python编写古诗_用Python实现古诗词填字游戏(一)

利用古诗词填字游戏是一项很有趣的活动,通常的填字游戏都是由几横几竖构成,如下图: 显然,横竖交叉的位置就是两句诗共有的字。那么,问题来了,如何从众多诗文中找到有共同字的句子呢?这里Mr. PosPro用Python写了一个小程序,可以生成简单填字游戏(的模型)程序输出的效果如下: 可以看到,程序从全唐诗中找到了3句有共同字的句子,并以合适的位置完成了排列。?和#代表了交叉处的字,同时在屏幕下方...

weixin_39534208的博客 4991

飞花令游戏(Python)

飞花令是古时候人们经常玩一种“行酒令”的游戏,是中国古代酒令之一,属雅令。在《中国诗词大会》中改良了“飞花令”,不再仅用 花 字,而是增加了 云、 春、月、夜 等诗词中的高频字,大家要轮流背诵含有关键字的诗句,关键字出现的位置也有要求,直至决出胜负。甲说一句第一个字带有“花”的诗句;请输入第1诗句:花自飘零水自流。请输入第2诗句:落花时节又逢君。请输入第3诗句:春江花朝秋月夜。请输入第4诗句:人面桃花相映红。请输入第5诗句:不知近水花先发。请输入第6诗句:千树万树梨花开。请输入第7诗句:霜叶红于二月花。

信息学奥赛 2557

[唐诗]咏蝉-骆宾王

西陆蝉声唱,南冠客思深。 不堪玄鬓影,来对白头吟。 露重飞难进,风多响易沉。 无人信高洁,谁为表予心?

weixin_33868027的博客 140

编程中的蛇形填空问题_【Python编程特训连载65】编写一个简单的“成语填填乐”程序...

编写一个小游戏,按列表中成语的顺序输出第一个字为空格的成语,要求用户填写答案,程序就可以判断填写是否正确。正确则输出“正确,你真棒!”;错误则输出“错了,正确答案:”;运行效果如图1所示。图1成语列表如下所示:list=["春暖花开","十字路口","千军万马","白手起家","张灯结彩","风和日丽","万里长城","人来人往","自由自在","瓜田李下","助人为乐","白手起家",...

weixin_30768881的博客 672

python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)

本文介绍了使用Python实现“古诗默写题”的方法,结合文件读写和编码实操进行讲解。通过简单明了的步骤,学习者可以了解到如何自动化生成和评判答案的优势。文章详细介绍了Python中的文件读写操作,包括打开、读取和写入文件的方法,并讲解了中文字符处理和编码转换的相关知识。通过学习这些知识,读者将掌握利用Python进行文件读写和编码操作的技巧,并了解如何实现“古诗默写题”。这个实例展示了Python在实际应用中的灵活性,同时加深对Python基础知识的掌握程度。

qq_41308872的博客 9786

python成语填空_python实现成语找一找

网上经常有些从N个字里面找成语的小游戏,那么怎么用python把成语组合找出来呢?准备词典从网上下载一个成语的词典、每行一个成语,保存成 word.txt。代码实现1.构建一个首字-成语的字典模型 predict.modelimport picklefrom pathlib import Pathseq = Path('word.txt').read_text().split('\n')predi...

weixin_39861624的博客 682

Python源码:使用Tkinter写一个诗词答题软件

【代码】Python源码:使用Tkinter写一个诗词答题软件。

我的Python教程 1112

【习题4】用Python完成新建文档写古诗+复制

【习题4】用Python完成新建文档写古诗+复制 #写函数 def mywrite(): try: f = open("gushi.txt","w",encoding="utf-8") print("文件打开成功") try: f.write("水调歌头\n明月几时有?把酒问青天。\n") f.write("不知天上宫阙,今夕是何年。\n") f.write("我欲乘风归去,又恐琼

qq_41731625的博客 2056

填字游戏-回溯法-Python

问题描述:在3*3个方格的方阵中要填入数字1到N(N>=10)内的某9个数字,每个方格填一个整数,使得所有相邻两个方格内的两个整数之和为质数。试求出所有满足这个要求的各种数字填法。Python实现:# bl[i]来记录数字i是否使用过, # di[i]用来记录下一个可以插在数字i后面的与其和为质数的数字在pr[i][]中的位置。 # 用pr[i][j]来存储按数字从小到大的顺序得出的与数字i...

Growth Diary 3960

程序员的算法趣题Q66: 设计填字游戏

程序员的算法趣题Q66: 设计填字游戏 详细解题分析和python题解

chenxy_bwave的专栏 3209

think python学习心得-(6)利用words.txt来进行填字游戏

练习9-1 fin = open('C://words.txt') for line in fin: word = line.strip() if len(word) >20: print word words.txt被保存在了C盘根目录下。 练习9-2 统计字母表中含有e的单词占有的百分比 fin = open('C://words.txt')

zclhit 3038

使用Python 编写“猜单词游戏”

1.创建工程文件。 2.代码如下: import random #random模组随机函数,随机数发生器。 WORDS=("python","difficult ","abandon","porduce ","arrangement ","congratulations ") #创建单词序列,随心组建。 print ( """ 欢迎参加猜单词游戏 把字母组合成一个正确的单词 """) #给游戏设计一个“封面” iscontinue="y" #把

m0_73566589的博客 2377

python基础-古诗词填词游戏

很久没写爬虫了,利用这次接单来顺便写一下爬虫。 文章目录1.项目需求2.思路梳理3.诗句处理遇到的问题有4.目录结构5.实现步骤6.收获不足 1.项目需求 用python实现古诗词填词游戏 诗词库的组成 初中古诗 备注: 诗词库参古诗文网https://so.gushiwen.cn/gushi/chuzhong.aspx 游戏功能: 1)以下玩法 诗句对一对:根据上句对下句, 或者根据下句补充上句 给整首诗词, 名句留白, 玩家补充 猜名句:给出独字20个, 打乱顺序, 组成名句 填词:给出名句, 留.

qq_42965915的博客 5610
上一篇: 用Python实现古诗词填字游戏(一)
下一篇: 在新浪SAE上部署应用实战心得
PosPro
博客等级 码龄11年 28粉丝 26原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值