之前暑假自学python时突发奇想写出来的东西而已
基本的iching函数(将1和0转化为64卦):
1 | def iching(str): |
1.硬币筮法: 用三个铜钱抛掷,根据结果判断爻型。
- 两个面一个背为少阳。
- 两个背一个面为少阴。
- 三个背为老阳。
- 三个面为老阴。
如此抛掷六次即可得到六爻。无变爻看本卦卦辞,一个变爻看变爻爻辞,两个以上变爻看本卦卦辞。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69import random
bagua1={'乾':'111','坤':'000','坎':'010','离':'101','巽':'110','兑':'011','震':'001','艮':'100'}
bagua2={'111':'乾','000':'坤','010':'坎','101':'离','110':'巽','011':'兑','001':'震','100':'艮'}
coin=[]
res=[]
for n in range(1,7):
print('第',n,'次扔硬币',sep='')
for i in range(1,4):
coin.append(random.randint(0,1))#扔三个硬币
for t in range(0,3):
if coin[t]==1:
print('第',t+1,'个硬币为正面',sep='')
else:
print('第',t+1,'个硬币为反面',sep='')
zheng=coin.count(1)
if zheng==0:
res.append(9)#9为老阳
elif zheng==1:
res.append(8)#8为少阴
elif zheng==2:
res.append(7)#7为少阳
elif zheng==3:
res.append(6)#6为老阴
coin=[]
transc=[]
trans=[]
print(res)
#无变爻的情况
if res.count(9)+res.count(6)==0:
for s in range(0,6):
if res[s]==8:#少阴为阴
trans.append(0)
elif res[s]==7:#少阳为阳
trans.append(1)
ult=''.join(str(e) for e in trans)
print(iching(ult),'不变',sep='')
#有变爻的情况
elif res.count(9)+res.count(6)==1:#仅一个变爻
for s in range(0,6):
if res[s]==8:#少阴为阴
trans.append(0)
transc.append(0)
elif res[s]==7:#少阳为阳
trans.append(1)
transc.append(1)
elif res[s]==9:#老阳阳变阴
transc.append(1)
trans.append(0)
elif res[s]==6:#老阴阴变阳
transc.append(0)
trans.append(1)
ult0=''.join(str(e) for e in transc)#变爻前
ult=''.join(str(e) for e in trans)#变爻后
print(ult0,ult)
print(iching(ult0),'之',iching(ult),sep='')
elif res.count(9)+res.count(6)>1:#有多个变爻
for s in range(0,6):
if res[s]==8:#少阴为阴
trans.append(0)
elif res[s]==7:#少阳为阳
trans.append(1)
elif res[s]==9:#老阳为阳
trans.append(1)
elif res[s]==6:#老阴为阴
trans.append(0)
ult=''.join(str(e) for e in trans)
print(ult)
print('多个变爻,本卦为',iching(ult))
input()
2.简易竹签筮法 五十根竹签,除去一根为太极。剩下的四十九根竹签分握于左右手,左手为天右手为地。从右手中抽出一根夹在左手小指中。用右手数左手中的竹签,八根一数,数尽不留,余下的加上左手小指的一根,计数得到下卦:一为乾☰,二为兑☱,三为离☲,四为震☳,五为巽☴,六为坎☵,七为艮☶,八为坤☷。 重复以上流程得到上卦。 再取四十九根竹签,分握于左右手,从右手取出一根夹于左小指,将左手的签六根一数,数尽不留。余下的加上小指的一根,合计为几时便几爻变。以变爻的爻辞占断。
1 | bagua1={'乾':'111','坤':'000','坎':'010','离':'101','巽':'110','兑':'011','震':'001','艮':'100'} |
- 本文链接: https://test.iqimi.top/2022/09/09/python实现简单的卜筮方法/
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。