奇门遁甲排盘程序如何确定值符

该程序的核心在于计算旬首和地盘天干的排列。首先根据日柱天干和地支确定旬首,接着计算出局数,这决定了地盘戊的位置。然后根据阴阳遁规则排布地盘天干,最终确定天盘值符。整个过程涉及复杂的数学逻辑和传统文化知识。
摘要由CSDN通过智能技术生成

最近把整个奇门遁甲排盘程序写完了,比较有难度的就是确定值符和位置。

值符的计算是要看日柱的旬首,旬首是甲和己,无论日柱天干是什么,都要看和旬首的距离。

tgday,dzday = self.__tiangan.index(self.bz[0][4]),self.__dizhi.index(self.bz[0][5])
##日柱天干和日柱地支
        """计算旬首,从日天干数一直减到5或者0,求地支数"""
        n = 0
        if tgday < 5:
            while tgday > 0:
                tgday -= 1
                n += 1
                if tgday == 0:
                    break
        else:
            while tgday > 5:
                tgday -= 1
                n += 1
                if tgday == 5:
                    break

        dizhi = (dzday+12-n)%12
        """计算旬首结束"""

dizhi代表了旬首对应的地支,这个地支决定了局数。局数的求法:

"""求上中下三元,四仲为上,四孟为中,四季为下"""
        flag = 0
        if dizhi in [0,3,6,9]:
            flag = 0
        elif dizhi in [2,5,8,11]:
            flag = 1
        elif dizhi in [1,4,7,10]:
            flag = 2
        ju_num = self.jq[flag]   #  局数
        """计算三元结束,确定了局数"""

这时候,ju_num对应的宫位就是地盘戊的位置,然后根据宫位按照戊己庚辛壬癸丁丙乙按照阳顺阴逆排列:

"""根据阴阳遁,排地盘天干"""
        undertiangan = {}
        if self.yinyang == 1:
            for i in range(9):
                num = (i+9+ju_num)%9
                if num == 0:
                    num = num + 9
                undertiangan[str(num)] = self.__qmtiangan[i%9]
        else:
            for i in range(9):
                num = (9 - i + ju_num) % 9
                if num == 0:
                    num = num + 9
                undertiangan[str(num)] = self.__qmtiangan[i%9]
        """排地盘天干结束"""

这时候地盘天干排列完毕,地盘天干和对应的宫位有了,那么天盘值符就很容易确定了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值