六爻排盘神机

选修课留了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.mzph.cn/news/856382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FlashAttention-2 论文阅读笔记

FlashAttention-2是对原始FlashAttention算法的一系列改进,旨在优化在GPU上的计算性能。本节详细讨论了FlashAttention-2的算法、并行性以及工作分区策略。 算法 FlashAttention-2的关键优化点在于减少非矩阵乘法(matmul)的浮点运算&#x…

详解工业网关在线探测功能及用途

详解工业网关在线探测功能及用途 工业网关作为工业物联网(IIoT)架构中的关键组件,扮演着桥梁的角色,它连接了现场的各类传感器、执行器以及更高级别的云平台或企业系统。在线探测功能是工业网关诸多能力中的一项重要特性&#xf…

2024年文化、艺术设计与社会科学国际学术会议(ICCADSS 2024)

2024年文化、艺术设计与社会科学国际学术会议(ICCADSS 2024) 重要信息 会议官网:http://www.iccadss.com 会议地址:北京 收录检索:EI,CPCI,CNKI,Google Scholar 投稿邮箱:society_info163.com 投稿标题&am…

Swagger的基本使用(快速入门)

目录 一、环境配置 (1)导入依赖:(一般导入依赖都会报错,所以大家也可以借鉴一下这篇文章:swagger配置报错) (2)启动类添加注解 二、Swagger配置介绍 (1)基本配置 (2)设置扫描的包 三、Swagger常用注解 (1)@Api (2)@ApiOperation (3)@ApiParam (…

clean code-代码整洁之道 阅读笔记(第十一章)

第十一章 系统 “复杂要人命,它消磨开发者的生命,让产品难以规划、构建和测试。” --RayOzzie,微软公司首席技术官 11.1 如何建造一个城市 每个城市都有一组组人管理不同的部分,有些人负责全局,其他人负责细节。 城市能运转&#…

如何解决 torch.cuda.is_available()是False

目录 1. 问题2. 解决方法2.1 安装torch的CUDA版本2.1.1 查看安装的torch是什么版本2.1.2 下载GPU版本的torch 2.2 安装 NVIDIA CUDA2.2.1 下载CUDA Toolkit2.2.2 安装CUDA Toolkit 最终效果 1. 问题 在Python中,使用Pytorch时,往往会选择使用CUDA模块&a…

行业唯一!三翼鸟场景品牌战略推动价值凸显

文 | 智能相对论 作者 | 佘凯文 当你的一只羊跑进别人的羊群中,怎么才能找到它? 从前人们为了区分自己的财产,会用烧红的铁块印在动物身上作为标记。在中世纪的欧洲,手工艺匠人用这种烧灼的方法在自己的手工艺品上烙下标记&…

「Python-docx 专栏」docx 设置页面边距、页眉页脚高度

本文目录 前言一、docx 页面边距在哪里二、对 <w:pgMar> 的详细说明1、上边距的说明2、右边距的说明3、下边距的说明4、左边距的说明5、页眉高度的说明6、页脚高度的说明三、设置 docx 页边距、页眉页脚高度1、完整代码2、代码执行效果图四、补充一些内容1、页面边距的两…

AI风险的优先级划分

AI 风险的优先级划分是一个复杂的过程&#xff0c;需要考虑多个因素。以下是一些常见的考虑因素和方法&#xff1a; 风险的可能性&#xff1a;评估 AI 系统产生风险的概率。高可能性的风险通常应被视为更高优先级。 风险的影响&#xff1a;考虑风险对人类、社会、环境或其他方面…

[面试题]RabbitMQ

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis[面试题]消息队列[面试题]…

Python里引用了time包后,不能再命名time变量了吗?

在Python中&#xff0c;一旦你使用import语句导入了某个模块&#xff08;比如time模块&#xff09;&#xff0c;你就不能再使用相同的名字&#xff08;在这个例子中是time&#xff09;来命名变量、函数或其他任何东西。这是因为导入的模块会被加入到当前的命名空间中&#xff0…

全面解析:C# 委托的实质性应用与优势

有人问C#的委托&#xff08;Delegate&#xff09;有什么实质性用途?委托在C#其实是无处不在&#xff0c;那么它具体用在那里呢&#xff1f;。 本文将从委托&#xff08;Delegate&#xff09;定义和演变讲起&#xff0c;让大家一目了然。 C#的委托&#xff08;Delegate&#…

【学习笔记】Elastic-Job和Quartz 实现企业级定时任务

Elastic-Job和Quartz 实现企业级定时任务 知识拆解框架整合Java高级玩法定时任务案例 第1章 课程介绍 课程的总体介绍&#xff0c;定时任务的应用场景和发展趋势&#xff0c;以及分布式走时任务的介绍 1-1、导学 1-2、为什么学习定时任务 1-3、定时任务技术发展趋势 1-4、主…

成为AIGC人才,是职场人当下的必修课?

随着科技的飞速进步&#xff0c;人工智能和机器学习技术正逐渐渗透到我们生活的每一个角落&#xff0c;其中&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;更是以其独特的魅力和广泛的应用前景&#xff0c;成为当下科技领域的热门话题。在这样的背景下&#xff0c;…

Matlab个性化绘图第3期—带三维球标记的折线图

前段时间有会员在群里问该如何绘制下面这种带三维球标记的折线图&#xff1a; 本期内容就来分享一下带三维球标记的折线图的Matlab绘制思路。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下载。有需…

【Android面试八股文】你能详细讲讲你在APK瘦身方面都做了哪些工作吗?

文章目录 一、我用到过的方法二、扩展阅读 其他的大厂方案一、我用到过的方法 面试官: 你能详细讲讲你在APK瘦身方面都做了哪些工作吗? 你: 在过去的项目中,我做了多方面的优化来减少APK的大小,从而提升应用的下载速度和安装体验。以下是一些具体的措施和技术实现: 移除不…

JavaScript的学习之旅(6.20)

目录 一、认识三个常见的js代码 二、js写入的第二种方式 三、js里内外部文件 一、认识三个常见的js代码 <script>//写入js位置的第一个地方// 控制浏览器弹出一个警告框alert("这是一个警告");// 在计算机页面输入一个内容&#xff08;写入body中&#xff…

使用PlugLink实现自动化运营:提升效率的秘密武器(附源码)

使用PlugLink实现自动化运营&#xff1a;提升效率的秘密武器 作为一款开源的自动化工具&#xff0c;PlugLink可以帮助个人和小微企业实现运营自动化&#xff0c;极大地提升工作效率&#xff0c;降低运营成本。 一、PlugLink简介 PlugLink是一个基于Python的开源自动化工具框…

候选键的确定方法-如何判断属性集U的子集K是否为候选键、如何找到关系模式的候选键

一、候选键的定义 在关系模式R(U,F)中&#xff0c;若&#xff0c;且K满足&#xff0c;则K为关系模式R的候选键 关系模式R的候选键必须满足以下两个条件&#xff1a; &#xff08;1&#xff09;必须是属性集U的子集 &#xff08;2&#xff09;完全函数决定属性集U 二、如何…

易兆微电子_嵌入式软件工程师笔试题

易先电子 嵌入式软件工程师笔试题(十七) 1.关键字 extern是什么含义, 请举例说明。 修饰符extern用在变量或者函数的声明前&#xff0c;用来说明 “ 此变量 / 函数是在别处定义的&#xff0c;要在此处引用 ”。 //main.c #include <stdio.h>int main() {extern int num…