六爻排盘神机

2024-06-20 20:52
文章标签 排盘 神机 六爻

本文主要是介绍六爻排盘神机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

选修课留了3000字的论文......确实,削微有那么一点小困难……
但是,倘若我拿出已经占了6419个字符的 “六爻排盘神机” ,阁下…应该…不会…骂我吧


且看,六爻排盘神机!

import random
import datetime
from lunarcalendar import Converter, Solardef get_user_input_time():user_input = input("请输入起卦时间 (格式如2024.05.29-21:56): ")return user_inputdef parse_input(user_input):try:date_part, time_part = user_input.split('-')year, month, day = map(int, date_part.split('.'))hour, minute = map(int, time_part.split(':'))return datetime.datetime(year, month, day, hour, minute)except ValueError as e:print(f"输入格式无效: {e}")return Nonedef get_chinese_hour(hour):chinese_hours = ["子时", "丑时", "丑时", "寅时", "寅时", "卯时", "卯时", "辰时", "辰时", "巳时", "巳时","午时", "午时", "未时", "未时", "申时", "申时", "酉时", "酉时", "戌时", "戌时", "亥时", "亥时"]return chinese_hours[hour]def convert_to_lunar(solar_date):try:solar = Solar(solar_date.year, solar_date.month, solar_date.day)lunar = Converter.Solar2Lunar(solar)return lunarexcept ValueError as e:print(f"转换为阴历时出错: {e}")return Nonedef get_ganzhi_year(year):# 天干tiangan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]# 地支dizhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]# 甲子年(公元4年)为基准base_year = 4diff_years = year - base_yeargan = tiangan[diff_years % 10]zhi = dizhi[diff_years % 12]return f"{gan}{zhi}年"def num_to_chinese(num):chinese_nums = "零一二三四五六七八九"return "".join(chinese_nums[int(digit)] for digit in str(num))def get_chinese_day(day):chinese_days = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十","十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十","廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十"]return chinese_days[day - 1]def get_chinese_month(month, is_leap):chinese_months = ["正月", "二月", "三月", "四月", "五月", "六月","七月", "八月", "九月", "十月", "冬月", "腊月"]return ("闰" if is_leap else "") + chinese_months[month - 1]def print_lunar_date(lunar_date, solar_date):if lunar_date:chinese_hour = get_chinese_hour(solar_date.hour)chinese_year = get_ganzhi_year(lunar_date.year)chinese_month = get_chinese_month(lunar_date.month, lunar_date.isleap)chinese_day = get_chinese_day(lunar_date.day)print(f"\n起卦时间: {chinese_year} {chinese_month} {chinese_day} {chinese_hour}\n")def coin_toss():# 模拟投掷三枚硬币,0表示正面朝上(阴),1表示反面朝上(阳)tosses = [random.choice([0, 1]) for _ in range(3)]  # 生成三次硬币投掷的结果# print("投掷结果:", tosses)return tosses.count(1)  # 统计投掷结果中反面(阳面)朝上的硬币个数# 定义64个卦的名字
hexagram_names = {'111111': '⚠乾为天','111110': '天风姤','111100': '天山遁','111000': '天地否','110000': '风地观','100000': '山地剥','101000': '火地晋','101111': '火天大有','011011': '⚠兑为泽','011010': '泽水困','011000': '泽地萃','011100': '泽山咸','010100': '水山蹇','000100': '地山谦','001100': '雷山小过','001011': '雷泽归妹','101101': '⚠离为火','101100': '火山旅','101110': '火风鼎','101010': '火水未济','100010': '山水蒙','110010': '风水换','111010': '天水讼','111101': '天火同人','001001': '⚠震为雷','001000': '雷地豫','001010': '雷水解','001110': '雷风恒','000110': '地风升','010110': '水风井','011110': '泽风大过','011001': '泽雷随','110110': '⚠巽为风','110111': '风天小畜','110101': '风火家人','110001': '风雷益','111001': '天雷无妄','101001': '火雷噬嗑','100001': '山雷颐','100110': '山风蛊','010010': '⚠坎为水','010011': '水泽节','010001': '水雷屯','010101': '水火既济','011101': '泽火革','001101': '雷火丰','000101': '地火明夷','000010': '地水师','100100': '⚠艮为山','100101': '山火贲','100111': '山天大畜','100011': '山泽损','101011': '火泽睽','111011': '天泽履','110011': '风泽中孚','110100': '风山渐','000000': '⚠坤为地','000001': '地雷复','000011': '地泽临','000111': '地天泰','001111': '雷天大壮','011111': '泽天夬','010111': '天水需','010000': '水地比'
}def get_hexagram_name(hexagram):hexagram_code = ''.join(['1' if '▄▄▄▄▄▄▄▄▄▄' in yao else '0' for yao in hexagram])# 翻转hexagram_codereversed_hexagram_code = hexagram_code[::-1]return hexagram_names.get(reversed_hexagram_code, '出错了!')def coin_toss():# 模拟投掷三枚硬币,0表示正面朝上(阴),1表示反面朝上(阳)tosses = [random.choice([0, 1]) for _ in range(3)]  # 生成三次硬币投掷的结果return tosses.count(1)  # 统计投掷结果中反面(阳面)朝上的硬币个数def interpret_toss(toss_result):# 解释投掷结果if toss_result == 1:  # 1个阳面return '▄▄▄▄▄▄▄▄▄▄', False  # 少阳,不变elif toss_result == 2:  # 2个阳面 (1个阴面)return '▄▄▄▄  ▄▄▄▄', False  # 少阴,不变elif toss_result == 0:  # 0个阳面 (3个阴面)return '▄▄▄▄  ▄▄▄▄ x', True  # 老阴,有变else:  # toss_result == 3return '▄▄▄▄▄▄▄▄▄▄ x', True  # 老阳,有变def generate_hexagram():hexagram = []mutations = []for i in range(6):toss_result = coin_toss()yao, is_mutation = interpret_toss(toss_result)hexagram.append(yao)if is_mutation:mutations.append((len(hexagram) - 1, yao))return hexagram, mutationsdef generate_mutations(hexagram, mutations):new_hexagram = hexagram[:]for yao_idx, yao in mutations:if yao == '▄▄▄▄  ▄▄▄▄ x':  # 老阴变老阳new_hexagram[yao_idx] = '▄▄▄▄▄▄▄▄▄▄'elif yao == '▄▄▄▄▄▄▄▄▄▄ x':  # 老阳变老阴new_hexagram[yao_idx] = '▄▄▄▄  ▄▄▄▄'return new_hexagramdef print_hexagram(hexagram):yao_labels = ["六爻", "五爻", "四爻", "三爻", "二爻", "初爻"]for i, yao in enumerate(hexagram[::-1]):print(f"{yao_labels[i]}: {yao}")def main():print("-+"*10 + "  六爻排盘神机  " + "+-"*10+"\n")input("请写下占问事宜:")user_input_time = get_user_input_time()solar_date = parse_input(user_input_time)if solar_date:lunar_date = convert_to_lunar(solar_date)print_lunar_date(lunar_date, solar_date)hexagram, mutations = generate_hexagram()hexagram_name = get_hexagram_name(hexagram)print(f"主卦: {hexagram_name}")print_hexagram(hexagram)if mutations:new_hexagram = generate_mutations(hexagram, mutations)new_hexagram_name = get_hexagram_name(new_hexagram)print(f"\n变卦: {new_hexagram_name}")print_hexagram(new_hexagram)print("\n" + "-+" * 10 + "  六爻排盘神机  " + "+-" * 10)if __name__ == "__main__":main()

这篇关于六爻排盘神机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079231

相关文章

奇门遁甲之排盘方法,分成9步去学习

奇门遁甲之阴盘遁甲排盘方法 奇门遁甲排盘方法: 第一步:排四柱,即是把起局时的阳历时间转换成干支表示方式。这个就是开八字,在此不细讲,大家可以看看八字的篇章。 第二步:定局 阳遁:冬至后夏至前的这段时间为阳遁。 阴遁:夏至后冬至前的这段时间为阴遁。 局数取(年支序数+月数+日数+时支序数)除9之余数为局数。 比如:农历1980年2月初6巳时生。四柱为:庚申,己卯,甲午,己巳。年支申的序

六爻财运断法:财运是以妻财为用神,看妻财和世爻的关系

财运断语 预测财运是以妻财为用神,看妻财和世爻的关系,因为世爻为求测之人。一般来说世爻不宜空破,也不宜兄弟持世。不过兄弟丑土,兄弟辰土和兄弟巳火持世,只要财爻旺相,不可以说财运不好。因为兄弟丑土与妻财子水相合,兄弟辰土为财库,兄弟巳火为财的长生点。 妻财合世,持世,或者是世爻生妻财,妻财克世,妻财冲世,都是有财可得的信息。妻财克世,有两种情况。一是世爻不空破,妻财旺的时候,乃是财来就我之象,主

六爻

【月】                                             【日】         甲己丙作首,乙庚戊为头               甲己还是甲,乙庚丙子居         丙辛寻庚起,丁壬壬寅留               丙辛起戊子,丁壬庚子居         戊癸何方觅,甲寅好追求               戊癸起壬子,时元从子推

六爻蓍草的占卜方法C++随机数实现

封神电影里周文王的占卜方法 ,占卜一次的结果需要很长时间,C++生成随机数算出六爻结果 http://www.360doc.com/content/12/0121/07/1071374691_1071374691.shtml #include <random>#include <iostream>#include <time.h>#include <stdlib.h>#include

pc端四化飞星紫微斗数排盘软件(接近楚天云阔使用的排盘软件)

技术搞着搞着突然就对祖国的玄学学产生了兴趣,在工作之娱自学了紫微斗数,其中紫微斗数以北派为主,一直想找个好用的pc端的排盘软件,比如有四化分象功能,用的最多的文墨天机不支持,同时自已电脑用着也很卡,另外也不喜欢它的四化盘的样式,所以最后决定自己开发一个电脑端的北派紫微斗数排盘软件 名称叫:道显紫微紫微斗数排盘 下载地址:百度网盘 https://pan.baidu.com/s/1rSLEvH4t6

道显紫微斗数排盘

上一篇内容:四化飞星排盘功能介绍(四化盘最接近楚天云阔使用的排盘软件) https://blog.csdn.net/wcl8580/article/details/133267530?spm=1001.2014.3001.5501 一.版本变更介绍: 1.新版本:1.0.0.12 版本变更: 1.增加三合盘,支持到流时 2.优化飞宫显示 3.增加字体选择 4.增加背景色选择 5.优化本大流的

道显紫微斗数排盘v14(楚天云阔四化排盘软件,支持三合、八字)

一.原有功能介绍: 四化飞星排盘功能介绍 三合排盘功能介绍 二.新版本功能介绍(1.0.0.13) 1.新功能 1.添加八字功能,支持大运、流年、流月 2.添加命盘时支持入字 3.添加命宫四化的开启/关闭 4.添加四化表的选择项 5.添加三合盘流耀的关闭/开启 6.命盘保存增加了一个案例选项 2.bug修复 1.定盘时时间临界时的bug 2.设置命盘类型变更时的bug 3.三合盘设置字

iztro紫微斗数排盘——朋友的第一个开源项目,欢迎大家试玩、反馈

hello, 大家好, 我是徐小夕, 今天给大家分享一款技术圈的小伙伴开源的非常有意思的开源项目——iztro. 介绍 用于紫微斗数排盘的 javascript 开源库,有以下功能。 根据出生日期(农历或阳历)以及出生时辰获取紫微斗数星盘数据,星盘数据包括 基础信息(出生日期,时辰,星座,生肖,身主,命主等信息)宫位信息(宫位名称,干支,星耀等)星耀信息(包括亮度 [(庙、旺、得、利、平、不

童年神机小霸王(四) 滚屏渲染 1

首发公众号:Rand_cs,求关注支持 滚屏渲染(基础部分) 本文继续 PPU 的话题来讲述滚屏,从我们小时候玩游戏的经验知道 NES 是支持像素级滚屏的,这在当时那个年代是个创举,这也是为什么 FC/NES 那么火热的原因之一 那 PPU 是如何支持像素级的滚屏?这就要先来看看 PPU 的一些硬件部分。 内存映射寄存器 首先来看看映射到 CPU 地址空间的一些寄存器,也是 CPU 与

排盘程序算法探寻举例(陆先生八字)

算法实现: 1.庚生未月,燥土不能生金,日支申金为日主墙根,月干辛金比劫透出傍身,月干强。年干甲木自做寅木强根,又得月支乙木中气,甲木强旺有力,时干丙火七杀得未土余气,年支中气,相对来说丙火最弱。地支申子半供水,来生甲木使得申金减力,丙火力弱贴身相克。所以八字甲木财星最旺,庚金相对较弱.原局辛金比劫透出劫财,首取比劫为用神,原局用神有力但丙辛隔合之嫌。未土为闲神。 乙亥大运,财星强