首頁>技術>

好多天沒寫了,今天用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的集合。)

20
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 用webpack建立vue專案/腳手架