好多天沒寫了,今天用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)] #生成第一句詩
temp.remove(str1)
print(" "*10,str1,",\n")
str2=xxx[rd.randint(0,len(xxx)-1)] #生成第二句詩
temp.remove(str2)
print(" "*10,str2,"。\n")
str3=temp[rd.randint(0,len(temp)-1)] #生成第三句詩
temp.remove(str3)
print(" "*10,str3,",\n")
str4=xxx[rd.randint(0,len(xxx)-1)] #生成第四句詩
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的集合。)