以前國中還是高中上國文課時,偶有詞語出自《易經》,才會在課本的註釋中讀到一兩句《易經》的內容。以前到圖書館翻閱《易經》,完全無法看懂。可是最近偶然意外從《維基文庫》中讀《易經》,卻是意外地可以抓住解讀的脈絡。懂或不懂一門知識彷彿上天都有安排好,也在某個特定時機、機緣把你帶到那個領域去。
AI人工智慧的話題超火,由於我離開IT的工作領域有一段時間了,也好久沒寫程式了,.突然興起用Python寫起卦程式的念頭。我沒有寫過Python,我的程式入門語言是FORTRAN,後來有機會學Pascal、C、Clipper(一種已經被淘汰的資料庫語言),在物件導向興起的時機撞牆,後來就慢慢離開寫程式了...
這一次重新嘗試寫程式是因為沒有工作的壓力,抱著玩樂的心態,也沒有特別再去學Python,竟是自己可以寫出一隻起卦程式,蠻開心的,所以想把程式碼貼在自己的小山洞中,自得其樂,紀念一下。
import sys,time,random,webbrowser
BaGua = ['乾','坤','坎','離','震','巽','艮','兌']
GuaXian = ['天','地','水','火','雷','風','山','澤']
Gua08 = ['☰','☷','☵','☲','☳','☴','☶','☱']
Guadict = {'111':Gua08[0], '000':Gua08[1], '010':Gua08[2], '101':Gua08[3], '001':Gua08[4], '110':Gua08[5], '100':Gua08[6], '011':Gua08[7] }
Gua64 = {'000000':'䷁地地坤', '100000':'䷖山地剝', '010000':'䷇水地比', '110000':'䷓風地觀', '001000':'䷏雷地豫', '101000':'䷢火地晉', '011000':'䷬澤地萃', '111000':'䷋天地否',
'000100':'䷎地山謙', '100100':'䷳山山艮', '010100':'䷦水山蹇', '110100':'䷴風山漸', '001100':'䷽雷山小過','101100':'䷷火山旅', '011100':'䷞澤山咸', '111100':'䷠天山遯',
'000010':'䷆地水師', '100010':'䷃山水蒙', '010010':'䷜水水坎', '110010':'䷺風水渙', '001010':'䷧雷水解', '101010':'䷿火水未濟','011010':'䷮澤水困', '111010':'䷅天水訟',
'000110':'䷭地風升', '100110':'䷑山風蠱', '010110':'䷯水風井', '110110':'䷸風風巽', '001110':'䷟雷風恆', '101110':'䷱火風鼎', '011110':'䷛澤風大過','111110':'䷫天風姤',
'000001':'䷗地雷復', '100001':'䷚山雷頤', '010001':'䷂水雷屯', '110001':'䷩風雷益', '001001':'䷲雷雷震', '101001':'䷔火雷噬嗑','011001':'䷐澤雷隨', '111001':'䷘天雷无妄',
'000101':'䷣地火明夷','100101':'䷕山火賁', '010101':'䷾水火既濟','110101':'䷤風火家人','001101':'䷶雷火豐', '101101':'䷝火火離', '011101':'䷰澤火革', '111101':'䷌天火同人',
'000011':'䷒地澤臨', '100011':'䷨山澤損', '010011':'䷻水澤節', '110011':'䷼風澤中孚','001011':'䷵雷澤歸妹','101011':'䷥火澤睽', '011011':'䷹澤澤兌', '111011':'䷉天澤履',
'000111':'䷊地天泰', '100111':'䷙山天大畜','010111':'䷄水天需', '110111':'䷈風天小畜','001111':'䷡雷天大壯','101111':'䷍火天大有','011111':'䷪澤天夬', '111111':'䷀天天乾'
}
print('假爾泰筮有常,OOO今以某事,未知可否。爰質所疑於神之靈,吉凶、得失、悔吝、憂虞,惟爾有神,尚明告知。')
yao=''
yao2=''
buyao=''
for i in range(6) :
print('請卜第'+str(i+1)+'個爻:') #模擬擲三枚硬幣
keystock=input()
res01=random.randint(0,1)
res02=random.randint(0,1)
res03=random.randint(0,1)
res=str(res01)+str(res02)+str(res03)
if res == '111': #處理爻變; 產生變(之)卦
sign='—'
buyao='1'
sign_var='+'
sign2='- -'
buyao2='0'
elif res == '011' or res == '101' or res == '110' :
sign='—'
buyao='1'
sign_var=' '
sign2='—'
buyao2='1'
elif res == '000' : #處理爻變 ; 產生變(之)卦
sign='- -'
buyao='0'
sign_var='+'
sign2='—'
buyao2='1'
elif res == '100' or res =='010' or res == '001' :
sign='- -'
buyao='0'
sign_var=' '
sign2='- -'
buyao2='0'
print('第'+str(i+1)+'個爻是'+buyao+sign+' '+sign_var)
yao = buyao + yao
yao2 = buyao2+yao2
result_o=str(Gua64.get(yao,0))
result_v=str(Gua64.get(yao2,0))
print('主卦是: '+result_o+' 之卦是: '+result_v) #印出結果
webbrowser.open('http://zh.wikisource.org/wiki/周易/'+result_o[3:9].rstrip()) #從維基百科查詢正卦解釋
webbrowser.open('http://zh.wikisource.org/wiki/周易/'+result_v[3:9].rstrip()) #從維基百科查詢之卦解釋
我在網路上找到起卦的方法,也讀了傅佩榮老師教授用籌策起卦的方法。解卦時先從主卦和之卦(變卦)整體的卦象解起,然後再讀變爻的釋詞。我覺得讀《易 》最好的方法就是從做中學。試著從實務中去解讀並體會每一卦的解釋、每一爻的解釋。
##
最近還從YouTube中看到一段影片介紹物理大師費因曼的學習方法:你接觸一門新知識,要嘗試著把你學到的知識用簡單的方法解釋給別人聽,如果講不清楚,表示你對那一段新知識的認知是有問題的,你可以把時間花費在那一個部分。重複以上講給別人聽的步驟,學習直到你可以完整簡單地闡述為止。
我的心得:把新學到的知識,整理成幾張PowerPoint投影片,或是用程式語言表現出來都是很好的反芻方式。
太酷了,請問還有更新嗎?
回覆刪除