命 理 × 技 术 · 教 程

用 Python 写一个「小六壬」排盘计算器(附网页版)

六壬时课,三步走完;不到 20 行代码,让千年占法在终端里跑起来。

说明:本文把小六壬当作传统文化与编程练习来写,工具结果仅供娱乐与文化研究,请理性看待,切勿迷信,更不可作为投资、健康、人生决策的依据

小六壬(又称"六壬时课""马前课")是民间流传很广的一种简易占法。它只用六个宫位,凭着"月、日、时"三步顺数,就能起出一课。规则极简,却足够让人感受到传统数术里那种"大道至简"的趣味。

作为写代码的人,看到这种"输入→固定规则→输出"的结构,第一反应应该是:这不就是个函数吗? 今天我们就用 Python 把它实现出来,再顺手做个网页版,挂到博客上让读者自己玩。

一、先认识六个宫

小六壬的核心是一圈六个宫,按固定顺序排列,并各自带吉凶属性:

序号

宫名

吉凶

一句话意象

1

大安

安稳、平稳,宜静守

2

留连

拖延、纠缠,宜缓

3

速喜

来得快、有喜信

4

赤口

口舌是非,谨言

5

小吉

小顺、可成

6

空亡

落空、虚浮

二、排盘规则:月上起日,日上起时

起课分三步,全部是"从某个宫开始,顺着六宫数过去":

月上起日:从「大安」起正月,顺数到所占的农历月;
日上起时:以①落定的宫为"初一",顺数到所占农历日;
时上定局:以②落定的宫为"子时",顺数到所占时辰。
最后落定的宫,就是这一课的结果。

比如农历三月初五午时:正月大安→二月留连→三月速喜(月定速喜);速喜当初一→数到初五落大安(日定大安);大安当子时→数到午时仍落大安。所以这一课是大安

三、Python 实现(核心不到 20 行)

把六宫放进列表,月/日/时全部转成"偏移量"取模即可。关键在于:每一步都"从上一步的结果接着数",所以用同一个 pos 变量累加再 % 6

LIUREN = ["大安", "留连", "速喜", "赤口", "小吉", "空亡"]
# 时辰顺序:子丑寅卯辰巳午未申酉戌亥
SHICHEN = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]

def xiaoliuren(month, day, hour_index):
    pos = (month - 1) % 6        # ① 月上起日:从大安起正月
    pos = (pos + (day - 1)) % 6  # ② 日上起时:从该宫起初一
    pos = (pos + hour_index) % 6 # ③ 时上定局:从该宫起子时
    return LIUREN[pos]

# 例:农历三月初五 午时(午=6)
print(xiaoliuren(3, 5, 6))   # 输出:大安

就这么简单。month 是农历月(1–12),day 是农历日(1–30),hour_index 是时辰在 SHICHEN 里的下标(子=0 … 亥=11)。

进阶:用"三个数"快速起课

不想查农历时,也可以让对方随口报三个 1–6 的数(或三个字的笔画数模 6),同样三步取模:

def xiaoliuren_3(a, b, c):
    pos = (a - 1) % 6
    pos = (pos + (b - 1)) % 6
    pos = (pos + (c - 1)) % 6
    return LIUREN[pos]

四、跑起来看看

把代码存成 liuren.py,命令行跑:

python liuren.py
# 大安

想批量测,就写个循环扫一遍十二时辰,看哪个时辰落"速喜/小吉"——这正好能讲清"同一天不同时辰,课象会变"这件事,比干背规则直观得多。

五、顺手做个网页版(读者能直接用)

终端版自己爽,博客读者要的是"点一下就出结果"。我把同一套逻辑搬到了前端 JavaScript,做成了单文件 HTML:选月、日、时辰,点"起课"即刻显示宫名、吉凶与断语。

▶ 打开网页排盘器

这个文件零依赖、纯静态,直接丢进你博客的 assets 或任意目录,用 <a> 链过去就行;想嵌进文章里,用 <iframe> 也行。

六、写在最后

把一种传统占法写成函数,本质上是一次"把模糊规则结构化"的练习——这和写业务代码没什么两样:厘清输入、定义规则、产出可复现的结果。技术在左,人性在右,这大概就是"在命理中见人性,在科技中见未来"的一种小小注脚。

当然,课象是定式的产物,人生的变量远比六个宫丰富。当游戏、当文化、当编程题都好;真要做什么决定,还是回到现实里那条最朴素的规律:认因果,信自己


#小六壬 #Python教程 #命理×技术 #传统文化 #编程练习

备选标题:① 六壬时课写进代码里:20 行 Python 做个排盘器 ② 当程序员遇到小六壬:一个能跑的占法函数