Python小游戏:乱点鸳鸯谱生成七言绝句

好多天没写了,今天用Python玩一个乱点鸳鸯谱生成七言绝句的游戏。

其实这个想法有好久了,以前一直觉得好多古诗是可以乱入的。前一段时间想突击学习Python,妄想着编一个EVE的内置商业助手。正好学到了列表一章,看到教材中的练习题,就编写了这样一个游戏。

一、效果

直接把生成的一些“大作”发出来搏诸君一笑:






二、如何实现目标

新建一个python程序

调用random库,为生成随机数据做装备

建立一个while循环,用变量on接收键盘输入值,输入Y就开始乱点鸳鸯谱生成随机七言绝句,输入N则退出程序。

生成各个韵调的七言诗句,然后拼合在一起,排序生成新的序列。

在多个韵调中随机抽取一个,第一、二、四句诗从这个系列中随机抽取。

每抽一句,则从序列中删除这一句,避免重复抽取。

四句合并,就形成了气死李杜的混搭七言绝句了。

三、主要代码

#这是一个古诗乱点鸳鸯谱程序

import random as rd

print("================随机七言绝句生成器================")

while True:

#明确开关值

on=str(input("请输入Y开始生成随机七言绝句,输入N退出程序:"))

if on=="Y" or on=="y":

#生成各个韶母的诗句库

ang=['君去试看汾水上','征马长思青海上','绿树浓阴夏日长','满架蔷薇一院香','丁丁漏永夜何长','漫漫轻云漏月光']  #其他自己去加

an=['岐王府里寻常见','故园东望路漫漫','双袖龙钟泪不干','凭君寄语报平安','走马西来欲到天','辞家见月二回圆']   #其他自己去加

en=['落花时节又逢君','崔九堂前几度闻','正是江南好风景','半入江风半入云','锦城丝管日纷纷','人间哪得几回闻']  #其他自己去加

yi=['黄四娘家花满蹊','千朵万朵压枝低','自在娇莺恰恰啼','马上相逢无纸笔','残雪压枝犹有橘','东去长安万里余']  #其他自己去加

wu=['留连戏蝶时时舞','今夜不知何处宿','也知乡信日亦疏','为报家人数寄书','故人何惜一纸书','况复明朝是岁除']   #其他自己去加

ou=['此曲只应天上有','西原驿路挂城头','客散江亭雨未收','白云尤似汉时秋','羌笛何须怨杨柳','泽国江山入战图']  #其他自己去加

a=['梁园日暮乱飞鸦','极目萧条三两家','春来还发旧时花','别梦依依到谢家','犹为离人照落花','更深月色半人家']  #其他自己去加

o=['借问梅花何处落','愿将此身长报国','淮南木落楚山多','顾影无如白发何','愧君犹遣慎风波','野芳虽晚不须嗟','江上月明胡雁过']  #其他自己去加

ei=['葡桃美酒夜光杯','欲饮琵琶马上催','古来征战几人回','不知马骨伤寒水','碧窗斜月霭深晖','不知何路向金微']  #其他自己去加

e=['枯桐叶落枝梢折','海畔风吹冻泥裂','红旗直上天山雪','小廊回合曲阑斜','多情只有春庭月','北斗栏干南斗斜']  #其他自己去加

ao=['醉卧沙场君莫笑','三戌渔洋再度辽','骍弓在臂剑横腰','休傍阴山更射雕','花径不曾缘客扫','生涯岂料承优诏','今日龙钟人共老']  #其他自己去加

ai=['池塘倒影入楼台','同来玩月人何在','梦里分明见关塞','水碧沙明两岸苔','不胜清怨却飞来','青山霁后云犹在']  #其他自己去加

ong=['人面桃花相映红','去年今日此门中','桃花依旧笑春风','泊舟微径度深松','画出东南四五峰','溪上遥闻精舍钟']  #其他自己去加

temp=sorted(ang+an+en+yi+wu+ou+a+o+ei+e+ao+a+ong)  #合并生成新序列

#挑选韶调,eval函数很强大的哦

index=['ang','an','en','yi','wu','ou','a','o','ei','e','ao','a','ong']

xxx=eval(index[rd.randint(0,len(index)-1)])

print("-"*50)

print("\n已乱点鸳鸯谱生成七言绝句如下,请欣赏:\n")

str1=xxx[rd.randint(0,len(xxx)-1)]  #生成第一句诗

xxx.remove(str1)                    #从列表中删除第一句诗句

temp.remove(str1)

print(" "*10,str1,",\n")

str2=xxx[rd.randint(0,len(xxx)-1)]  #生成第二句诗

xxx.remove(str2)                    #从列表中删除第二句诗句

temp.remove(str2)

print(" "*10,str2,"。\n")

str3=temp[rd.randint(0,len(temp)-1)]  #生成第三句诗

if xxx.count(str3)>0:xxx.remove(str3)  #从列表中删除第三句诗句

temp.remove(str3)

print(" "*10,str3,",\n")

str4=xxx[rd.randint(0,len(xxx)-1)]  #生成第四句诗

xxx.remove(str4)                    #从列表中删除第四句诗句

temp.remove(str4)

print(" "*10,str4,"。\n")

print("-"*50)

elif on=="N" or on=="n":

print("退出程序!再见!")

break

else:

print("只能输入Y或者N,请重来!\n\n\n")

(好吧,无论网游戏也好,编程也好,生活也好,于我们来说其实都不过是一场游戏。洞悉世界的本质之后你会发现一切都不过是0与1的集合。)

想要了解和学习更多的话,欢迎大家的加入:Python学习

你可能感兴趣的:(Python小游戏:乱点鸳鸯谱生成七言绝句)