位置: 首页 > 梅花术语

梅花易数在线排盘起卦解卦 我用Python摆摊算命,速来围观!

梅花易数在线排盘起卦解卦 我用Python摆摊算命,速来围观!

背景

长期以来,中国的占卜都是靠算命的手工实现,手续繁琐(经常需要洗澡、算天气、打坐等)。准备工作复杂(通常需要铜币等道具),计算方法复杂,需要手动计算二进制并转换成最终的卦。为了解决这个问题,作者实现了一套科学的快速占卜工具。

本文的算命方法由八卦+周易+梅花易书实现,脚本基于.9.0开发。我对周易五行的研究比较浅。如有遗漏,敬请见谅。最终效果如图。运行程序后会根据当前运势自动获取你所想的卦(本卦、互卦、变卦)

六爻在线排盘解卦视频_梅花易数在线排盘起卦解卦_在线起卦解卦

必备知识

基本原理

首先,我们需要了解一些基本的占卜知识。目前我国几种主流的占卜方法,基本都是以易演化为基础的。一般来说,根据某种现象得到不同的卦,不同的卦最终会代表占卜的开始、发展和结果。

太极生二法,二法生四象梅花易数在线排盘起卦解卦,四象生八卦

相信大家在很多影视作品中都听过这句话,但很少有人知道它的真正含义。这句话其实概括了卦的生成过程。

梅花易数在线排盘起卦解卦_在线起卦解卦_六爻在线排盘解卦视频

梅花易数在线排盘起卦解卦_六爻在线排盘解卦视频_在线起卦解卦

当然,八国不足以代表事物发展的方向梅花易数在线排盘起卦解卦,所以古人将八卦(分开的八卦称为经)成对组合,产生了64种不同的其他卦梅花易数在线排盘起卦解卦 我用Python摆摊算命,速来围观!,经变化之六十四卦是这样的

六爻在线排盘解卦视频_梅花易数在线排盘起卦解卦_在线起卦解卦

目前中国的主流占卜基本上是通过不同的取数方式得到不同的卦,最后判断事物的走向。其实对于程序员来说,这两个仪器可以看成是一个一位的二进制数,有两种状态0、1。四象是两位二进制数,有00、01、10、11四种状态。八卦是三位二进制数梅花易数在线排盘起卦解卦,包括000、001、010、011、@ >100、101、110、111 个状态

如何生成卦

现在我们知道了卦是如何演变的,但是我们还没有能够得到卦的方式。其实,在占卜的过程中,不同的占卜方式最大的不同往往就是卦的造卦方式不同。我们这里用梅花。六边形便于数数。

梅花易数卦法(这里只截取两种卦法):

1、年、月、日、时、卦

即农历年月日之和除以八,余数为卦数梅花易数在线排盘起卦解卦 我用Python摆摊算命,速来围观!,求上卦;年月日之和除以八,余数为卦数,求下卦,再用年月日之和。除以六,余数为动线。

例:农历人神年四月初十一的卦:申年九数,四时六数。

前面的卦是:(年+月+日)÷8,取余数。即:(9+4+11)÷8,这里没有余数。

下一个卦是:(年+月+日+时)÷8,取余数。即:(9+4+11+6)÷8,余数6为看卦。

移动线数为:(年+月+日+小时)÷6,取余数。即:(9+4+11+6)除以6,没有余数。

此卦为:上卦为坤,下卦为堪,动线为上行。

2、直接算卦

这是一种简单且高度准确的制作卦的方法。当有人要求量某物时,你可以让他随意说出两个数字,第一个数字作为上卦,第二个数字作为下卦,两个数字之和除以6,其余的是移动线。或者你可以使用其他可以得到两个数字开始卦的方法,比如翻书、日历等。

发展

我们用程序员的话来总结一下梅花易书的过程。流程如下

1.取一个随机数(我们这里使用当前时间戳)取模8,作为挂起(一个三位二进制数)

2.再取一个随机数,取模八,用作挂机(三位二进制数)

3.结合以上两个随机数得到一个六位数的二进制数

4.将六位二进制数转换为十进制数,查表得到这个卦

5.取一个随机数,取模6,把上面六位二进制数对应位的0改为1,1改为0,再转成十进制数查表得到改变

5.

6.根据原卦和改卦查表得到占卜结果

import json
import random
import time
#别挂配置数据
gua_data_path = "data.json"
#别卦数据
gua_data_map = {
 
}
fake_delay = 10
#读取别卦数据
def init_gua_data(json_path):
 with open(gua_data_path,'r',encoding='utf8')as fp:
  global gua_data_map
  gua_data_map = json.load(fp)
#爻图标映射
yao_icon_map = {
 0:"- -",
 1:"---"
}
#经卦名
base_gua_name_map = {
 0:"坤",1:"震",2:"坎",3:"兑",4:"艮",5:"离",6:"巽",7:"乾"
}
#数字转化为二进制数组
def base_gua_to_yao(gua, yao_length=3):
 result = []
 while gua >= 1:
  level = 0 if gua % 2 == 0 else 1
  gua //= 2
  result.append(level)
 while len(result) < yao_length:
  result.append(0)
 return result
#二进制数组转化为数字
def base_yao_to_gua(array):
 array = array[:]
 while len(array) > 0 and array[-1] == 0:
  array.pop()
 result = 0
 for i in range(len(array)):
  if array[i] == 0:
   continue
  result += pow(2, i)
 
 return result
#打印一个挂
def print_gua(gua):
 yao_list = base_gua_to_yao(gua, 6)
 up_yao_list = yao_list[0:3]
 up = base_yao_to_gua(up_yao_list)
 print(yao_icon_map[up_yao_list[2]])
 print(yao_icon_map[up_yao_list[1]] + " " + base_gua_name_map[up])
 print(yao_icon_map[up_yao_list[0]])
 
 print("")
 down_yao_list = yao_list[3:6]
 down = base_yao_to_gua(down_yao_list)
 print(yao_icon_map[down_yao_list[2]])
 print(yao_icon_map[down_yao_list[1]] + " " + base_gua_name_map[down])
 print(yao_icon_map[down_yao_list[0]])
#使用梅花易数
def calculate_with_plum_flower():
 #起上卦
 print("使用梅花易数♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️♣️")
 print_a_wait_animation("卜上卦:", fake_delay)
 up_base_gua = int(round(time.time() * 1000)) % 8
 up_yao_array = base_gua_to_yao(up_base_gua)
 print("上卦获取成功,上卦为:", base_gua_name_map[up_base_gua])
 #起下卦
 print_a_wait_animation("正在获取下卦:", fake_delay)
 down_base_gua = random.randint(0, 999999999999) % 8
 down_yao_array = base_gua_to_yao(down_base_gua)
 print("上卦获取成功,下卦为:", base_gua_name_map[down_base_gua])
 #组成卦象
 print_a_wait_animation("正在组成本卦:", fake_delay)
 print("------------------------------------------------本卦------------------------------------------------")
 yao_list = up_yao_array + down_yao_array
 gua = base_yao_to_gua(yao_list)
 print_gua(gua)
 #读取本卦象信息
 gua_code = str(base_gua_name_map[up_base_gua]) + str(base_gua_name_map[down_base_gua])
 gua_data = gua_data_map[gua_code]
 print("本卦为:", gua_data['name'])
 print("辞:", gua_data['words'],"译:",gua_data['white_words'])
 print("象:", gua_data['picture'],"译:",gua_data['white_picture'])
 print_a_wait_animation("正在组成互卦:", fake_delay)
 print("------------------------------------------------互卦------------------------------------------------")
 #读取互卦象信息
 up_hu_yao_list = [yao_list[4],yao_list[5],yao_list[0]]
 up_hu_gua = base_yao_to_gua(up_hu_yao_list)
 down_hu_yao_list =[yao_list[5],yao_list[0],yao_list[1]]
 down_hu_gua = base_yao_to_gua(down_hu_yao_list)
 hu_yao_list = up_hu_yao_list + down_hu_yao_list
 hu_gua = base_yao_to_gua(hu_yao_list)
 hu_gua_code = str(base_gua_name_map[up_hu_gua]) + str(base_gua_name_map[down_hu_gua])
 hu_gua_data = gua_data_map[hu_gua_code]
 print_gua(hu_gua)
 print("互卦为:", hu_gua_data['name'])
 print("辞:", hu_gua_data['words'],"译:",hu_gua_data['white_words'])
 print("象:", hu_gua_data['picture'],"译:",hu_gua_data['white_picture'])
 print_a_wait_animation("正在组成变卦:", fake_delay)
 print("------------------------------------------------变卦------------------------------------------------")
 change_index = int(round(time.time() * 1000)) % 6
 change_yao_list = yao_list[:]
 change_yao_list[change_index] = 0 if change_yao_list[change_index] == 1 else 1
 up_change_yao_list = change_yao_list[0:3]
 up_change_gua = base_yao_to_gua(up_change_yao_list)
 down_change_yao_list =change_yao_list[3:5]
 down_change_gua = base_yao_to_gua(down_change_yao_list)
 
 change_gua = base_yao_to_gua(change_yao_list)
 print_gua(change_gua)
 change_gua_code = str(base_gua_name_map[up_change_gua]) + str(base_gua_name_map[down_change_gua])
 change_gua_data = gua_data_map[change_gua_code]
 print("变卦为:", change_gua_data['name'])
 print("辞:", change_gua_data['words'],"译:",change_gua_data['white_words'])
 print("象:", change_gua_data['picture'],"译:",change_gua_data['white_picture'])
def print_a_wait_animation(tips,times):
 animation = "|/-\\"
 idx = 0
 for i in range(times):
  print(tips + animation[idx % len(animation)],animation[idx % len(animation)],animation[idx % len(animation)],animation[idx % len(animation)],animation[idx % len(animation)], end="\r"),
  idx += 1
  time.sleep(0.1)
init_gua_data(gua_data_path)
calculate_with_plum_flower()

你也想摆摊算命吗?现在就试试吧!

标签: 梅花易数 排盘 占卜算命

梅花相关内容