免费网站建设软件/十大网络推广公司排名
选修课留了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()
相关文章:

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

【ARMv8/v9 GIC 系列 2.1 -- GIC SPI 中断的 pending 和 clear pending 配置】
文章目录 GIC Pending 和 Clear PendingGICD_ISPENDR<n>GICD_ICPENDR<n>参数<n>编号解释使用举例设置中断ID 100为挂起状态清除中断ID 100的挂起状态 代码实现小结 GIC Pending 和 Clear Pending 在ARMv8体系结构中,GICD_ISPENDR<n> 和 GI…...

SpringBoot集成logback初始化源码解析(部分)
一.SpringBoot配置扩展点 SpringBoot日志模块使用监听的方式进行初始化,在SpringBoot项目启动后,会通知日志监听器 在日志监听器中ApplicationStartingEvent事件用来确定到底使用哪个日志系统,logback log4j等 在日志监听器中ApplicationEn…...

【Linux工具】yum软件包管理器与Vim编辑器的高效运用
目录 Linux 软件包管理器 YUM 什么是软件包 安装工具 rzsz 及注意事项 查看软件包 安装和卸载软件 安装软件 卸载软件 Linux 开发工具 编辑器 - Vim 使用 编辑 Vim 与 Vi 的区别 Vim 的基本概念 三种模式 Vim 的基本操作 操作尝试: Vim 命令集解释…...

Matlab数学建模实战应用:案例4 - 图像处理
目录 前言 一、图像处理基础 二、Matlab图像处理工具箱 三、案例:图像锐化、去噪和分割 步骤 1:读取和显示图像 步骤 2:图像锐化 步骤 3:图像去噪 步骤 4:图像分割 完整代码示例 四、实际应用 实例总结 总…...

Studying-代码随想录训练营day15| 222.完全二叉树的节点个数、110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和
第十五天,二叉树part03💪,编程语言:C 目录 257.完全二叉树的节点个数 110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和 总结 257.完全二叉树的节点个数 文档讲解:代码随想录完全二叉树的节点个数 视频讲解…...

Python 基础:异常
目录 一、异常概念二、处理异常2.1 抛出异常2.2 使用 try-except 代码块2.3 使用 try-except-else 代码块2.4 静默失败 三、总结 遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步! 本文参考:《Python编程&a…...

XML 应用程序
XML 应用程序 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。它是一种自我描述的语言,允许用户定义自己的标签和文档结构。XML广泛应用于各种应用程序中,包括网站开发、数据交换、文档管理等。本文将探讨XML的一些主要…...

SprringCloud Gateway动态添加路由不重启
文章目录 前言:一、动态路由必要性二、SpringCloud Gateway路由加载过程RouteDefinitionLocator接口PropertiesRouteDefinitionLocator类DiscoveryClientRouteDefinitionLocatorInMemoryRouteDefinitionRepositoryCompositeRouteDefinitionLocator类CachingRouteDef…...

Windows安装mysql
首先去官网下载社区版本的mysql(如果连不上,挂梯子) https://www.mysql.com/downloads/ 2. 去配置环境变量path 3. 在cmd里面初始化数据库(在搜索框输入cmd,或者在资源管理器下搜索烂输入cmd回车就行) my…...

chatgpt: linux 下用纯c 编写ui
在Linux下用纯C语言编写用户界面(UI),通常会使用GTK或Xlib。GTK是一个更高级的库,提供了丰富的控件和功能,而Xlib则是一个更底层的库,提供了直接操作X Window系统的功能。 下面是一个使用GTK在Linux上创建…...

Java十六进制Dump打印数据
代码 package test;import java.io.IOException;import sun.misc.HexDumpEncoder;@SuppressWarnings("restriction")...

某棋牌渗透测试
前言 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、信息收集 这里通过fofa进行收集,语法为:body某棋牌 && titlexxx 图1-1 fofa资产收集 …...

JAVA面试(六)
缓存 MemcachedredisRedis常见数据类型和使用Redis缓存持久化RDB-快照AOF-追加文件 Redis数据过期机制惰性删除定期删除Redis缓存淘汰策略(8种)算法LRU (Least Recently Used):最近最少使用LFU(Least Frequ…...

【C语言】手写学生管理系统丨附源码+教程
最近感觉大家好多在忙C语言课设~ 我来贡献一下,如果对你有帮助的话谢谢大家的点赞收藏喔! 1. 项目分析 小白的神级项目,99%的程序员,都做过这个项目! 掌握这个项目,就基本掌握 C 语言了! 跳…...

流媒体传输协议HTTP-FLV、WebSocket-FLV、HTTP-TS 和 WebSocket-TS的详细介绍、应用场景及对比
一、前言 HTTP-FLV、WS-FLV、HTTP-TS 和 WS-TS 是针对 FLV 和 TS 格式视频流的不同传输方式。它们通过不同的协议实现视频流的传输,以满足不同的应用场景和需求。接下来我们对这些流媒体传输协议进行剖析。 二、传输协议 1、HTTP-FLV 介绍:基于 HTTP…...

【机器学习】线性回归:从基础到实践的深度解析
🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 💫个人格言: "如无必要,勿增实体" 文章目录 线性回归:从基础到实践的深度解析引言一、线性回归基础1.1 定义与目…...

短视频开源项目MoneyPrinterTurbo:AI副业搞起来,视频制作更轻松!
目录 引言一、MoneyPrinterTurbo简介二、MoneyPrinterTurbo的核心功能三、MoneyPrinterTurbo的未来发展四、MoneyPrinterTurbo与AI副业五、部署实践1、克隆代码2、创建虚拟环境3、安装依赖4、安装好 ImageMagick5、端口映射6、启动Web界面7、模型配置8、填写主题9、视频生成10、…...

【JAVA】SpringBoot + skywalking 将接口的入参、出参、异常等信息上报到skywalking 链路追踪服务器上
【JAVA】SpringBoot skywalking 将接口的入参、出参、异常等信息上报到skywalking 链路追踪服务器上 1.下载SkyWalking APM https://skywalking.apache.org/downloads/ jdk8 不支持 SkyWalking APM 9.3.0以上版本,所以这里我们下载 9.3.0版本 2.下载 Java Agent …...

[xmake]构建静态库和动态库
xmake 静态库和动态库 在xmake中创建静态库和动态库的方法非常相似。以下是创建静态库和动态库的基本步骤: 创建xmake工程文件(xmake.lua)。 配置工程属性,包括工程名、版本等。 添加源代码文件到工程中。 设置是创建静态库还…...

功能测试 之 单模块测试----轮播图、登录、注册
单功能怎么测? 需求分析 拆解测试点 编写用例 1.轮播图 (1)需求分析 位置:后台--页面--广告管理---广告列表(搜索index页面增加广告位2) 操作完成后需要点击admin---更新缓存,前台页面刷新生效 (2)拆解…...

MyBatis-PageHelper 源码解说
归档 GitHub: MyBatis-PageHelper-源码解说 总说明 源码仓库: https://github.com/pagehelper/Mybatis-PageHelper克隆:git clone https://github.com/pagehelper/Mybatis-PageHelper.git切分支(tag):git checkout m…...

基于uni-app和图鸟UI的智慧校园圈子小程序开发实践
摘要: 随着教育信息化和“互联网教育”的快速发展,智慧校园建设已成为推动校园管理现代化、提高教育教学质量的重要手段。本文介绍了基于uni-app和图鸟UI开发的智慧校园圈子小程序,旨在通过一站式服务、个性化定制、数据互通和安全可靠等特点…...

STM32 keil工程移植到Visual Studio Code环境中编译
1、GCC Vscode 搭建 STM32 开发环境 GCC Vscode 搭建 STM32 开发环境(一)- 环境部署 - 知乎 (zhihu.com) 2、在原有keil工程下找到原本CUBEMX生成的.ioc工程文件 3、将.ioc文件复制一个新的文件夹下双击打开工程,将IDE选为Makefile&…...

细说CountDownLatch
CountDownLatch是Java中提供的一个同步辅助类,它允许一个或多个线程等待其他线程完成操作。在面试中,面试官经常会询问候选人是否在实际项目中使用过CountDownLatch,以评估其对多线程编程和并发控制的理解和经验。本文将详细介绍CountDownLat…...

java-克隆应用
5.2 创建复杂对象 对于某些复杂对象,通过克隆来创建其副本比通过构造函数创建新实例更加高效。例如,当对象包含大量字段或需要进行复杂初始化时,克隆可以显著提高性能。 java 复制代码 class ComplexObject implements Cloneable { private …...

RPC协议
3.8 既然有 HTTP 协议,为什么还要有 RPC 假设我们需要在 A 电脑的进程发一段数据到 B 电脑的进程,我们一般会在代码里使用 Socket 进行编程。 这时候,我们可选项一般也就 TCP 和 UDP 二选一。TCP 可靠,UDP 不可靠。 类似下面这…...

医疗器械3D全景展会在线漫游创造数字化时代的展览新篇章
在数字化浪潮的引领下,VR虚拟网上展会正逐渐成为企业展示品牌实力、吸引潜在客户的首选平台。我们与广交会携手走过三年多的时光,凭借优质的服务和丰富的经验,赢得了客户的广泛赞誉。 面对传统展会活动繁多、企业运营繁忙的挑战,许…...

IP_Endpoint类型在CAPL中的使用
在使用TCP/IP协议栈通信时,创建Socket套接字调用接口函数实现通信的整个过程成为一种主流且便捷的方式。在CAPL中,Client需要创建TCP或UDP套接字,绑定自己的IP地址和一个端口号,作为自己的通信端点。 on key c {clientsocket = tcpOpen(ipGetAddressAsNumber("192.16…...

数据资产与用户体验优化:深入挖掘用户数据,精准分析用户需求与行为,优化产品与服务,提升用户体验与满意度,打造卓越的用户体验,赢得市场认可
一、引言 在数字化时代,数据已经成为企业最宝贵的资产之一。通过深入挖掘和分析用户数据,企业能够精准把握用户需求和行为,从而优化产品与服务,提升用户体验和满意度。这不仅有助于企业在激烈的市场竞争中脱颖而出,还…...