用编程教科书的写法,讲一本现代人能读懂的四柱科普书。
《四柱编程》首先是一本书,其次才是一个带有少量实验性代码的配套项目。
这个项目最初的核心想法,并不是“做一个算命程序”,而是尝试把四柱命理中那些常常显得跳跃、含混、难以进入的内容,改写成一种更接近现代读者阅读习惯的表达方式:
像编程教材那样,讲清楚它的基本概念、数据结构、规则系统、分析流程和边界条件。
所以,这个仓库的主体不是代码,而是书稿。
代码部分只是辅助性的原型,用来说明:四柱中确实有一部分内容,可以被拆成结构化规则来理解和表达。
这是一个尝试用编程思维 + 教科书写法来重写四柱知识的项目。
它希望完成的事情是:
- 把传统四柱里的核心概念讲得更清楚
- 把分散的术语整理成更统一的知识结构
- 把经验化表述尽量转写成规则化表述
- 让没有传统术数基础的现代读者,也能比较顺畅地进入这套系统
换句话说,这个项目更接近:
- 一本结构化的四柱科普书
- 一本带有“程序员视角”的四柱教材
- 一份把古典知识翻译成现代知识结构的写作实验
而不是:
- 完整的算命软件
- 自动断命系统
- 覆盖所有流派的命理引擎
本项目请优先按下面这个顺序理解:
仓库中的 sizhu_programming.md 是本项目当前最重要的内容。
它承载的是这本书的核心写作目标:用更结构化、更现代、更像教材的方式讲四柱。
你可以把它理解为:
- 本书正文
- 主体书稿
- 理论框架
- 全项目的中心内容
仓库中的 sizhu/ 与 tests/ 不是项目主体,而是配套材料。
它们的作用主要是:
- 演示“四柱中的部分规则可以被程序化表达”
- 为书中的某些规则提供可验证样例
- 帮助读者理解“结构化思维”在这里如何落地
这些代码目前只是一小步原型,不代表完整系统,也不承担“自动分析全部命理问题”的目标。
传统四柱资料往往有几个让现代读者难以进入的问题:
- 术语多,但定义不总是统一
- 判断很多,但步骤不总是展开
- 结论很多,但规则来源不总是说明
- 经验很强,但结构不总是清晰
而“编程教科书”的写法,恰好适合处理这些问题。
因为它天然会追问:
- 这个概念到底是什么
- 输入是什么,输出是什么
- 判断依据是什么
- 规则之间的优先级是什么
- 哪些是确定规则,哪些是解释性经验
- 哪些部分可以写清,哪些部分只能留给人的判断
所以,“四柱编程”里的“编程”,并不只是指真的写代码,
更重要的是指一种组织知识、讲清规则、分层表达的方法。
这个项目的定位可以概括成一句话:
这是一本文科读者也能读的四柱科普/教材型书稿,代码只是辅助理解的实验性附录。
因此,它会尽量遵循下面几个原则:
优先把基础概念、定义和关系讲明白,而不是一开始就堆结论。
把基础数据、规则系统、分析流程、解释层分开,不混在一起。
不夸大程序化能力,也不假装所有问题都能靠几条规则自动解决。
代码存在的意义,是辅助书稿表达,而不是把整个项目拖成一个纯技术工程。
sizhu_programming.md
本项目当前最核心的正文内容。
可以把它视为《四柱编程》这本书的主文。
sizhu/__init__.pysizhu/core.pysizhu/cli.pytests/test_core.pypyproject.toml
这部分内容用于展示一个最小可运行原型,说明四柱中的某些底层规则,确实可以用程序结构表达。
当前项目已经从“纯写作构想”进入“书稿 + 原型”的阶段。
- 主体书稿
- 基础项目说明
- 最小可运行代码原型
- 十神计算示例
- 地支藏干展开示例
- 基础测试样例
- 更成熟的全书章节整理
- 更完整的例子系统
- 公历转四柱
- 节气换月
- 起运计算
- 大运 / 流年模块
- 更系统的分析器
- 更成熟的解释层输出
这意味着:
当前最成熟的依然是“书的想法和书的结构”,而不是“程序功能”。
sizhu-programming/
├─ LICENSE
├─ README.md
├─ pyproject.toml
├─ sizhu_programming.md
├─ sizhu/
│ ├─ __init__.py
│ ├─ core.py
│ └─ cli.py
└─ tests/
└─ test_core.py
-
sizhu_programming.md
本项目主体书稿,也是全项目最重要的内容。 -
README.md
项目说明文件,用来帮助读者理解这本书与配套代码之间的关系。 -
pyproject.toml
Python 项目的基础配置文件。 -
sizhu/core.py
当前版本的核心规则原型代码,包括四柱对象、十神计算、藏干展开、基础分析逻辑。 -
sizhu/cli.py
命令行入口,用于做最简单的规则演示。 -
tests/test_core.py
用来验证原型代码中部分底层规则是否符合预期。
如果你是第一次接触这个项目,建议按这个顺序看:
先明白这个项目的目标是什么,不是什么。
这才是主体。
如果你对“四柱编程”真正感兴趣,最应该读的是这份书稿。
代码不是必要入口。
它只是用来帮助你理解:为什么这套写法会借用编程思维。
当前这部分原型代码只适合做这些事:
- 展示四柱对象如何结构化表达
- 展示十神如何基于日主计算
- 展示地支藏干如何展开
- 展示最基础的规则层如何写成代码
- 为书稿中的某些论述提供辅助样例
它目前不适合承担这些期待:
- 自动完成完整命理分析
- 一键输出成熟断语
- 处理所有流派分歧
- 替代人工的高阶判断
所以请把它理解成:
配套实验,而不是最终产品。
《四柱编程》真正想讲的,也许不是“如何写一个四柱程序”,
而是更基础也更重要的问题:
- 四柱到底由哪些基本元素构成
- 它的规则系统是如何组织起来的
- 哪些判断是可以清楚说明的
- 哪些判断依赖经验和解释
- 为什么有些部分适合程序化
- 为什么有些部分不可能被完全程序化
如果这本书最后能让读者做到下面这些事,它就已经成功了:
- 不再把四柱只看成一堆神秘术语
- 能看见它内部的结构和规则
- 能分辨“规则”与“解释”的不同层次
- 能以更现代的方式进入传统知识
这本书尤其适合下面这些读者:
- 对四柱感兴趣,但不喜欢传统资料那种跳跃写法的人
- 想用现代结构化方式理解传统知识的人
- 对“编程思维如何帮助知识整理”感兴趣的人
- 想把复杂知识写成教材的人
- 即使完全不会编程,也想读懂这套表达方式的人
换句话说:
它不是写给程序员专用的,反而是写给希望更容易读懂四柱的人。
后续这个项目会优先做两件事:
包括:
- 章节重组
- 表达统一
- 术语收束
- 增加例子
- 增加图示
- 强化阅读顺序
代码只会做那些真正有助于说明问题的部分,而不会喧宾夺主。
也就是说,未来的重点仍然是:
把这本书写好。
本项目仍处于早期阶段。
仓库中的内容更适合作为:
- 书稿
- 教材雏形
- 结构化写作实验
- 规则表达样例
- 研究与讨论材料
而不应被理解成已经成熟、完整、定型的软件系统。
感谢所有愿意把传统知识重新整理、重新翻译、重新表达的人。
也感谢 AI 在这个项目早期阶段,作为写作、整理和原型辅助工具所提供的帮助。
《四柱编程》本身也是一次实验:
不是为了证明四柱一定能够被完全程序化,
而是为了试着把它写得更清楚、更现代、更容易被理解。
作者:sahan