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

您所在的位置:网站首页 python猜成语游戏 用Python实现古诗词填字游戏(三)

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

2023-10-22 07:25| 来源: 网络整理| 查看: 265

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

程序的思路很清晰:

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中


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3