mingyu-core 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bazi/baziTypes.d.ts +31 -0
- package/dist/bazi/baziTypes.d.ts.map +1 -1
- package/dist/calendar/timeManager.d.ts +24 -0
- package/dist/calendar/timeManager.d.ts.map +1 -1
- package/dist/calendar/timeManager.js +21 -0
- package/dist/calendar/timeManager.js.map +1 -1
- package/dist/divination/algorithms/almanac.d.ts +23 -0
- package/dist/divination/algorithms/almanac.d.ts.map +1 -1
- package/dist/divination/algorithms/almanac.js +23 -0
- package/dist/divination/algorithms/almanac.js.map +1 -1
- package/dist/divination/algorithms/astrolabe.d.ts +26 -0
- package/dist/divination/algorithms/astrolabe.d.ts.map +1 -1
- package/dist/divination/algorithms/astrolabe.js +26 -0
- package/dist/divination/algorithms/astrolabe.js.map +1 -1
- package/dist/divination/algorithms/lenormand.d.ts +16 -0
- package/dist/divination/algorithms/lenormand.d.ts.map +1 -1
- package/dist/divination/algorithms/lenormand.js +16 -0
- package/dist/divination/algorithms/lenormand.js.map +1 -1
- package/dist/divination/algorithms/liuren/index.d.ts +15 -0
- package/dist/divination/algorithms/liuren/index.d.ts.map +1 -1
- package/dist/divination/algorithms/liuren/index.js +15 -0
- package/dist/divination/algorithms/liuren/index.js.map +1 -1
- package/dist/divination/algorithms/liuyao.d.ts +12 -2
- package/dist/divination/algorithms/liuyao.d.ts.map +1 -1
- package/dist/divination/algorithms/liuyao.js +12 -2
- package/dist/divination/algorithms/liuyao.js.map +1 -1
- package/dist/divination/algorithms/meihua/index.d.ts +16 -2
- package/dist/divination/algorithms/meihua/index.d.ts.map +1 -1
- package/dist/divination/algorithms/meihua/index.js +16 -2
- package/dist/divination/algorithms/meihua/index.js.map +1 -1
- package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts +56 -0
- package/dist/divination/algorithms/qimen/helpers/jushu-extended.d.ts.map +1 -0
- package/dist/divination/algorithms/qimen/helpers/jushu-extended.js +98 -0
- package/dist/divination/algorithms/qimen/helpers/jushu-extended.js.map +1 -0
- package/dist/divination/algorithms/qimen/helpers/jushu.d.ts +23 -0
- package/dist/divination/algorithms/qimen/helpers/jushu.d.ts.map +1 -1
- package/dist/divination/algorithms/qimen/helpers/jushu.js +37 -1
- package/dist/divination/algorithms/qimen/helpers/jushu.js.map +1 -1
- package/dist/divination/algorithms/qimen/index.d.ts +28 -32
- package/dist/divination/algorithms/qimen/index.d.ts.map +1 -1
- package/dist/divination/algorithms/qimen/index.js +121 -118
- package/dist/divination/algorithms/qimen/index.js.map +1 -1
- package/dist/divination/algorithms/ssgw.d.ts +17 -1
- package/dist/divination/algorithms/ssgw.d.ts.map +1 -1
- package/dist/divination/algorithms/ssgw.js +18 -2
- package/dist/divination/algorithms/ssgw.js.map +1 -1
- package/dist/divination/algorithms/xiaoliuren.d.ts +21 -0
- package/dist/divination/algorithms/xiaoliuren.d.ts.map +1 -1
- package/dist/divination/algorithms/xiaoliuren.js +21 -0
- package/dist/divination/algorithms/xiaoliuren.js.map +1 -1
- package/dist/divination/tarot.d.ts +40 -0
- package/dist/divination/tarot.d.ts.map +1 -1
- package/dist/divination/tarot.js +40 -0
- package/dist/divination/tarot.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/divination.d.ts +79 -0
- package/dist/types/divination.d.ts.map +1 -1
- package/package.json +7 -3
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file 奇门遁甲排盘算法(主入口)
|
|
3
|
-
* @description
|
|
3
|
+
* @description 基于转盘法,实现时家/日家/月家/年家奇门完整排盘,
|
|
4
|
+
* 含定局、布盘、格局识别、方位建议、应期判断。
|
|
4
5
|
* @流派 转盘奇门(拆补法定局)
|
|
5
6
|
* @古籍依据 《烟波钓叟歌》《遁甲演义》《奇门遁甲秘籍大全》
|
|
6
7
|
*
|
|
7
8
|
* @核心流程
|
|
8
|
-
* 1.
|
|
9
|
-
* 2.
|
|
9
|
+
* 1. 定局数(拆补法/月家法/年家法):根据 scope 选择不同定局方式
|
|
10
|
+
* 2. 寻值符值使:由对应级别的干支旬首定位值符星和值使门
|
|
10
11
|
* 3. 排九宫格:布地盘三奇六仪 -> 定值符值使落宫 -> 排天盘九星 -> 排人盘八门 -> 排神盘八神
|
|
11
12
|
* 4. 识格局:基础标签(伏吟/反吟/门迫等)+ 经典双元格局(九遁、三奇格局、门迫、击刑、入墓)
|
|
12
13
|
* 5. 辅助分析:方位吉凶、应期估算
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
* "三奇得使最为良,玉女守门喜非常" —— 吉格判据
|
|
21
22
|
* "十干入墓主事迟,击刑之处防官非" —— 凶格判据
|
|
22
23
|
*/
|
|
23
|
-
import type { QimenData, QimenJiuGongGe } from '../../../types/divination';
|
|
24
|
+
import type { QimenData, QimenJiuGongGe, QimenScope } from '../../../types/divination';
|
|
24
25
|
import type { QimenMethod } from './helpers/layout';
|
|
25
26
|
/**
|
|
26
27
|
* 根据地支解析所属宫位
|
|
@@ -48,6 +49,9 @@ declare function getHorseBranch(sourceBranch: string): string;
|
|
|
48
49
|
/**
|
|
49
50
|
* 生成奇门遁甲完整排盘
|
|
50
51
|
*
|
|
52
|
+
* 支持时家(hour)、日家(day)、月家(month)、年家(year)四种级别。
|
|
53
|
+
* 默认时家奇门(精确到时辰),使用拆补法定局。
|
|
54
|
+
*
|
|
51
55
|
* 遵循拆补法定局、转盘法排盘,完整输出九宫四盘(天地人神)、
|
|
52
56
|
* 格局标签、经典格局(九遁、三奇、门迫、击刑、入墓等)、
|
|
53
57
|
* 宫位洞察、方位吉凶指引和应期估算。
|
|
@@ -57,11 +61,13 @@ declare function getHorseBranch(sourceBranch: string): string;
|
|
|
57
61
|
* 1. **时间信息**:《歌》"先须掌上排九宫,纵横十五在其中"
|
|
58
62
|
* - 获取公历、农历、节气、干支等完整时间数据
|
|
59
63
|
*
|
|
60
|
-
* 2.
|
|
61
|
-
* -
|
|
64
|
+
* 2. **定局数**:《歌》"阴阳二遁分顺逆,一气三元人莫测"
|
|
65
|
+
* - 时家/日家:拆补法(以节气为界)
|
|
66
|
+
* - 月家:月支循环定局
|
|
67
|
+
* - 年家:年干分组 + 三元甲子周期
|
|
62
68
|
*
|
|
63
69
|
* 3. **寻值符值使(旬首法)**:《歌》"直符直使各有时,时干直符时支使"
|
|
64
|
-
* -
|
|
70
|
+
* - 由对应级别干支的旬首定位值符星和值使门
|
|
65
71
|
*
|
|
66
72
|
* 4. **排九宫格(转盘法)**:《歌》"星随符转,门随地转,八神随遁顺逆"
|
|
67
73
|
* - 布地盘三奇六仪 -> 定值符值使落宫 -> 排天盘九星 -> 排人盘八门 -> 排神盘八神
|
|
@@ -71,46 +77,36 @@ declare function getHorseBranch(sourceBranch: string): string;
|
|
|
71
77
|
* 6. **基础格局标签**:《歌》"星反吟兮门反吟,门迫宫兮事难行"
|
|
72
78
|
* - 伏吟/反吟、门迫、击刑、入墓、三奇得、符使同宫、三奇得使、马星
|
|
73
79
|
*
|
|
74
|
-
* 7.
|
|
75
|
-
* -
|
|
76
|
-
* 玉女守门、门宫生克、击刑、入墓等
|
|
80
|
+
* 7. **经典格局**:《歌》"天遁地遁与人遁,龙遁虎遁与风遁"
|
|
81
|
+
* - 九大遁格、三奇得使/升殿/入墓/会甲、符使同宫等
|
|
77
82
|
*
|
|
78
|
-
* 8.
|
|
83
|
+
* 8. **天地盘干关系**:每个宫位天盘干与地盘干的五行生克
|
|
79
84
|
*
|
|
80
|
-
* 9.
|
|
85
|
+
* 9. **宫位洞察**:综合门、神、星、格局标签判定各宫等级
|
|
81
86
|
*
|
|
82
87
|
* 10. **方位建议**:《歌》"八门若遇开休生,诸事逢之总称情"
|
|
83
|
-
* -
|
|
88
|
+
* - 按门、神、星、三奇综合评分,推荐吉方与避方
|
|
84
89
|
*
|
|
85
90
|
* 11. **应期估算**:《奇门遁甲大全》庚格应期法
|
|
86
|
-
* - 用神落宫基线 + 值符值使调整 + 庚格定应期 + 伏吟/反吟/马星/空亡微调
|
|
87
91
|
*
|
|
88
92
|
* @param customDate 自定义时间(可选,默认当前时间)
|
|
89
93
|
* @param method 排盘方法,默认 'zhuanpan'(转盘法)
|
|
94
|
+
* @param scope 排盘级别,默认 'hour'(时家奇门)
|
|
90
95
|
* @returns 完整的奇门遁甲数据 QimenData
|
|
91
96
|
*
|
|
92
97
|
* @example
|
|
93
98
|
* ```ts
|
|
99
|
+
* // 时家奇门(默认)
|
|
94
100
|
* const result = generateQimen();
|
|
95
|
-
*
|
|
96
|
-
* //
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* //
|
|
100
|
-
*
|
|
101
|
-
* // zhiFu: '天蓬',
|
|
102
|
-
* // zhiShi: '休门',
|
|
103
|
-
* // patternTags: ['星伏吟', '三奇得(乙奇到震三宫)'],
|
|
104
|
-
* // patternDetails: [{ tag: '星伏吟', summary: '九星回原位...' }],
|
|
105
|
-
* // classicPatterns: [{ name: '天遁', type: 'good', score: 9, ... }],
|
|
106
|
-
* // stemRelations: [{ gong: 1, heavenStem: '戊', earthStem: '癸', relation: '比和', ... }],
|
|
107
|
-
* // palaceInsights: [{ gong: 1, name: '坎一宫', level: '关注', ... }],
|
|
108
|
-
* // directions: { goodDirections: [...], avoidDirections: [...] },
|
|
109
|
-
* // yingQi: { minDays: 7, maxDays: 15, rhythm: '快', ... },
|
|
110
|
-
* // timestamp: 1703980800000,
|
|
111
|
-
* // }
|
|
101
|
+
*
|
|
102
|
+
* // 日家奇门
|
|
103
|
+
* const result = generateQimen(undefined, 'zhuanpan', 'day');
|
|
104
|
+
*
|
|
105
|
+
* // 年家奇门
|
|
106
|
+
* const result = generateQimen(new Date('2025-01-01'), 'zhuanpan', 'year');
|
|
112
107
|
* ```
|
|
113
108
|
*/
|
|
114
|
-
export declare function generateQimen(customDate?: Date, method?: QimenMethod): QimenData;
|
|
109
|
+
export declare function generateQimen(customDate?: Date, method?: QimenMethod, scope?: QimenScope): QimenData;
|
|
110
|
+
export type { QimenScope };
|
|
115
111
|
export { getHorseBranch, resolveQimenBranchPalace };
|
|
116
112
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/divination/algorithms/qimen/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/divination/algorithms/qimen/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA0BpD;;;;;;GAMG;AACH,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EAAE,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIzD;AAED;;;;;;;;;GASG;AACH,iBAAS,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAMpD;AAgDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAgB,aAAa,CAC3B,UAAU,CAAC,EAAE,IAAI,EACjB,MAAM,GAAE,WAAwB,EAChC,KAAK,GAAE,UAAmB,GACzB,SAAS,CA+JX;AAyFD,YAAY,EAAE,UAAU,EAAE,CAAC;AAM3B,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file 奇门遁甲排盘算法(主入口)
|
|
3
|
-
* @description
|
|
3
|
+
* @description 基于转盘法,实现时家/日家/月家/年家奇门完整排盘,
|
|
4
|
+
* 含定局、布盘、格局识别、方位建议、应期判断。
|
|
4
5
|
* @流派 转盘奇门(拆补法定局)
|
|
5
6
|
* @古籍依据 《烟波钓叟歌》《遁甲演义》《奇门遁甲秘籍大全》
|
|
6
7
|
*
|
|
7
8
|
* @核心流程
|
|
8
|
-
* 1.
|
|
9
|
-
* 2.
|
|
9
|
+
* 1. 定局数(拆补法/月家法/年家法):根据 scope 选择不同定局方式
|
|
10
|
+
* 2. 寻值符值使:由对应级别的干支旬首定位值符星和值使门
|
|
10
11
|
* 3. 排九宫格:布地盘三奇六仪 -> 定值符值使落宫 -> 排天盘九星 -> 排人盘八门 -> 排神盘八神
|
|
11
12
|
* 4. 识格局:基础标签(伏吟/反吟/门迫等)+ 经典双元格局(九遁、三奇格局、门迫、击刑、入墓)
|
|
12
13
|
* 5. 辅助分析:方位吉凶、应期估算
|
|
@@ -23,7 +24,8 @@
|
|
|
23
24
|
import { getDivinationTime } from '../../../calendar/timeManager.js';
|
|
24
25
|
import { getVoidBranches } from '../../../calendar/lunar.js';
|
|
25
26
|
import { diPanPalaces } from './helpers/_constants.js';
|
|
26
|
-
import { getQimenJuShu, getZhiFuZhiShi, getDunJiaStem } from './helpers/jushu.js';
|
|
27
|
+
import { getQimenJuShu, getZhiFuZhiShi, getZhiFuZhiShiByGanZhi, getDunJiaStem } from './helpers/jushu.js';
|
|
28
|
+
import { getMonthQimenJuShu, getYearQimenJuShu } from './helpers/jushu-extended.js';
|
|
27
29
|
import { arrangeJiuGongGe } from './helpers/layout.js';
|
|
28
30
|
import { getQimenPatternTags, buildPatternDetails, buildPalaceInsights } from './helpers/patterns.js';
|
|
29
31
|
import { getStemRelations, getClassicPatterns } from './helpers/classic-patterns.js';
|
|
@@ -117,6 +119,9 @@ function mapStemRelations(relations) {
|
|
|
117
119
|
/**
|
|
118
120
|
* 生成奇门遁甲完整排盘
|
|
119
121
|
*
|
|
122
|
+
* 支持时家(hour)、日家(day)、月家(month)、年家(year)四种级别。
|
|
123
|
+
* 默认时家奇门(精确到时辰),使用拆补法定局。
|
|
124
|
+
*
|
|
120
125
|
* 遵循拆补法定局、转盘法排盘,完整输出九宫四盘(天地人神)、
|
|
121
126
|
* 格局标签、经典格局(九遁、三奇、门迫、击刑、入墓等)、
|
|
122
127
|
* 宫位洞察、方位吉凶指引和应期估算。
|
|
@@ -126,11 +131,13 @@ function mapStemRelations(relations) {
|
|
|
126
131
|
* 1. **时间信息**:《歌》"先须掌上排九宫,纵横十五在其中"
|
|
127
132
|
* - 获取公历、农历、节气、干支等完整时间数据
|
|
128
133
|
*
|
|
129
|
-
* 2.
|
|
130
|
-
* -
|
|
134
|
+
* 2. **定局数**:《歌》"阴阳二遁分顺逆,一气三元人莫测"
|
|
135
|
+
* - 时家/日家:拆补法(以节气为界)
|
|
136
|
+
* - 月家:月支循环定局
|
|
137
|
+
* - 年家:年干分组 + 三元甲子周期
|
|
131
138
|
*
|
|
132
139
|
* 3. **寻值符值使(旬首法)**:《歌》"直符直使各有时,时干直符时支使"
|
|
133
|
-
* -
|
|
140
|
+
* - 由对应级别干支的旬首定位值符星和值使门
|
|
134
141
|
*
|
|
135
142
|
* 4. **排九宫格(转盘法)**:《歌》"星随符转,门随地转,八神随遁顺逆"
|
|
136
143
|
* - 布地盘三奇六仪 -> 定值符值使落宫 -> 排天盘九星 -> 排人盘八门 -> 排神盘八神
|
|
@@ -140,154 +147,97 @@ function mapStemRelations(relations) {
|
|
|
140
147
|
* 6. **基础格局标签**:《歌》"星反吟兮门反吟,门迫宫兮事难行"
|
|
141
148
|
* - 伏吟/反吟、门迫、击刑、入墓、三奇得、符使同宫、三奇得使、马星
|
|
142
149
|
*
|
|
143
|
-
* 7.
|
|
144
|
-
* -
|
|
145
|
-
* 玉女守门、门宫生克、击刑、入墓等
|
|
150
|
+
* 7. **经典格局**:《歌》"天遁地遁与人遁,龙遁虎遁与风遁"
|
|
151
|
+
* - 九大遁格、三奇得使/升殿/入墓/会甲、符使同宫等
|
|
146
152
|
*
|
|
147
|
-
* 8.
|
|
153
|
+
* 8. **天地盘干关系**:每个宫位天盘干与地盘干的五行生克
|
|
148
154
|
*
|
|
149
|
-
* 9.
|
|
155
|
+
* 9. **宫位洞察**:综合门、神、星、格局标签判定各宫等级
|
|
150
156
|
*
|
|
151
157
|
* 10. **方位建议**:《歌》"八门若遇开休生,诸事逢之总称情"
|
|
152
|
-
* -
|
|
158
|
+
* - 按门、神、星、三奇综合评分,推荐吉方与避方
|
|
153
159
|
*
|
|
154
160
|
* 11. **应期估算**:《奇门遁甲大全》庚格应期法
|
|
155
|
-
* - 用神落宫基线 + 值符值使调整 + 庚格定应期 + 伏吟/反吟/马星/空亡微调
|
|
156
161
|
*
|
|
157
162
|
* @param customDate 自定义时间(可选,默认当前时间)
|
|
158
163
|
* @param method 排盘方法,默认 'zhuanpan'(转盘法)
|
|
164
|
+
* @param scope 排盘级别,默认 'hour'(时家奇门)
|
|
159
165
|
* @returns 完整的奇门遁甲数据 QimenData
|
|
160
166
|
*
|
|
161
167
|
* @example
|
|
162
168
|
* ```ts
|
|
169
|
+
* // 时家奇门(默认)
|
|
163
170
|
* const result = generateQimen();
|
|
164
|
-
*
|
|
165
|
-
* //
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
* //
|
|
169
|
-
*
|
|
170
|
-
* // zhiFu: '天蓬',
|
|
171
|
-
* // zhiShi: '休门',
|
|
172
|
-
* // patternTags: ['星伏吟', '三奇得(乙奇到震三宫)'],
|
|
173
|
-
* // patternDetails: [{ tag: '星伏吟', summary: '九星回原位...' }],
|
|
174
|
-
* // classicPatterns: [{ name: '天遁', type: 'good', score: 9, ... }],
|
|
175
|
-
* // stemRelations: [{ gong: 1, heavenStem: '戊', earthStem: '癸', relation: '比和', ... }],
|
|
176
|
-
* // palaceInsights: [{ gong: 1, name: '坎一宫', level: '关注', ... }],
|
|
177
|
-
* // directions: { goodDirections: [...], avoidDirections: [...] },
|
|
178
|
-
* // yingQi: { minDays: 7, maxDays: 15, rhythm: '快', ... },
|
|
179
|
-
* // timestamp: 1703980800000,
|
|
180
|
-
* // }
|
|
171
|
+
*
|
|
172
|
+
* // 日家奇门
|
|
173
|
+
* const result = generateQimen(undefined, 'zhuanpan', 'day');
|
|
174
|
+
*
|
|
175
|
+
* // 年家奇门
|
|
176
|
+
* const result = generateQimen(new Date('2025-01-01'), 'zhuanpan', 'year');
|
|
181
177
|
* ```
|
|
182
178
|
*/
|
|
183
|
-
export function generateQimen(customDate, method = 'zhuanpan') {
|
|
179
|
+
export function generateQimen(customDate, method = 'zhuanpan', scope = 'hour') {
|
|
184
180
|
// ──────────────────────────────────────────────────────────────────────────
|
|
185
181
|
// 步骤 1:获取统一占卜时间信息
|
|
186
182
|
// ──────────────────────────────────────────────────────────────────────────
|
|
187
|
-
// 《烟波钓叟歌》:"先须掌上排九宫,纵横十五在其中。
|
|
188
|
-
// 次将八卦论八节,一气统三为正宗。"
|
|
189
183
|
const { timeInfo, ganzhi, timestamp } = getDivinationTime(customDate);
|
|
190
184
|
const { jieQi } = timeInfo;
|
|
185
|
+
// 根据 scope 确定"主动干支"(用于定局、寻符使、空亡、驿马)
|
|
186
|
+
const activeGanZhi = getActiveGanZhi(ganzhi, scope);
|
|
191
187
|
// ──────────────────────────────────────────────────────────────────────────
|
|
192
|
-
// 步骤 2
|
|
188
|
+
// 步骤 2:定局数
|
|
193
189
|
// ──────────────────────────────────────────────────────────────────────────
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
// 五日都来换一元,接气超神为准则。"
|
|
197
|
-
//
|
|
198
|
-
// 拆补法以节气为界,不置闰:
|
|
199
|
-
// - 阳遁:冬至 -> 芒种(顺布六仪,逆布三奇)
|
|
200
|
-
// - 阴遁:夏至 -> 大雪(逆布六仪,顺布三奇)
|
|
201
|
-
const jushuResult = getQimenJuShu({
|
|
202
|
-
jieQi,
|
|
203
|
-
ganzhi: { day: ganzhi.day },
|
|
204
|
-
solar: {
|
|
205
|
-
year: timeInfo.solar.year,
|
|
206
|
-
month: timeInfo.solar.month,
|
|
207
|
-
day: timeInfo.solar.day,
|
|
208
|
-
},
|
|
209
|
-
});
|
|
190
|
+
const jushuResult = getJushuForScope(scope, ganzhi, timeInfo);
|
|
191
|
+
const { isYangDun, juShu, yuan } = jushuResult;
|
|
210
192
|
// ──────────────────────────────────────────────────────────────────────────
|
|
211
193
|
// 步骤 3:寻值符与值使(旬首法)
|
|
212
194
|
// ──────────────────────────────────────────────────────────────────────────
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
//
|
|
216
|
-
// 旬首地支 -> 地盘宫位 -> 该宫星为值符、门为值使
|
|
217
|
-
const { zhiFu, zhiShi, specialConditions } = getZhiFuZhiShi(ganzhi.hour);
|
|
195
|
+
const zhiFuShiResult = getZhiFuShiForScope(scope, activeGanZhi, ganzhi);
|
|
196
|
+
const { zhiFu, zhiShi, specialConditions } = zhiFuShiResult;
|
|
197
|
+
// ── 后续步骤 4-12 与 scope 无关,共用同一套排盘逻辑 ──
|
|
218
198
|
// ──────────────────────────────────────────────────────────────────────────
|
|
219
199
|
// 步骤 4:排九宫格(转盘法)
|
|
220
200
|
// ──────────────────────────────────────────────────────────────────────────
|
|
221
|
-
|
|
222
|
-
// "星随符转,门随地转,八神随遁顺逆"
|
|
223
|
-
//
|
|
224
|
-
// 转盘法五大步骤:
|
|
225
|
-
// 1) 布地盘三奇六仪(阳顺阴逆)
|
|
226
|
-
// 2) 定值符落宫(时干遁干所在宫)与值使落宫(时支所在宫)
|
|
227
|
-
// 3) 排天盘九星(值符为把手,九星整体旋转)
|
|
228
|
-
// 4) 排人盘八门(值使为把手,沿洛书轨迹排列)
|
|
229
|
-
// 5) 排神盘八神(值符神随天盘值符星,阳顺阴逆排列)
|
|
230
|
-
const jiuGongGe = arrangeJiuGongGe(jushuResult.isYangDun, jushuResult.juShu, zhiFu, zhiShi, { hour: ganzhi.hour }, method);
|
|
201
|
+
const jiuGongGe = arrangeJiuGongGe(isYangDun, juShu, zhiFu, zhiShi, { hour: activeGanZhi }, method);
|
|
231
202
|
// ──────────────────────────────────────────────────────────────────────────
|
|
232
203
|
// 步骤 5:辅助数据(空亡、驿马)
|
|
233
204
|
// ──────────────────────────────────────────────────────────────────────────
|
|
234
|
-
const
|
|
235
|
-
const
|
|
236
|
-
|
|
237
|
-
// 用于判断宫位能量虚浮、不宜行动
|
|
238
|
-
const voidBranches = getVoidBranches(ganzhi.hour) || [];
|
|
205
|
+
const activeZhi = activeGanZhi.charAt(1);
|
|
206
|
+
const activeGanForFind = getDunJiaStem(activeGanZhi);
|
|
207
|
+
const voidBranches = getVoidBranches(activeGanZhi) || [];
|
|
239
208
|
const voidPalaces = voidBranches
|
|
240
209
|
.map((branch) => resolveQimenBranchPalace(branch, jiuGongGe))
|
|
241
210
|
.filter((item) => Boolean(item));
|
|
242
|
-
|
|
243
|
-
// 《烟波钓叟歌》:"天马方为动应之神,驿马冲则事速"
|
|
244
|
-
const horseBranch = getHorseBranch(hourZhi);
|
|
211
|
+
const horseBranch = getHorseBranch(activeZhi);
|
|
245
212
|
const horsePalace = horseBranch ? resolveQimenBranchPalace(horseBranch, jiuGongGe) : null;
|
|
246
|
-
// 值符落宫与值使落宫(用于后续格局判断和应期估算)
|
|
247
213
|
const zhiFuLandingPalace = jiuGongGe.find((gong) => gong.tianPan.star === zhiFu)?.gong;
|
|
248
214
|
if (zhiFuLandingPalace === undefined) {
|
|
249
215
|
throw new Error(`找不到值符星 "${zhiFu}" 落宫。`);
|
|
250
216
|
}
|
|
251
|
-
const zhiShiLandingPalace = diPanPalaces[
|
|
217
|
+
const zhiShiLandingPalace = diPanPalaces[activeZhi];
|
|
252
218
|
if (zhiShiLandingPalace === undefined) {
|
|
253
|
-
throw new Error(
|
|
219
|
+
throw new Error(`找不到 "${activeZhi}" 对应的地盘宫位。`);
|
|
254
220
|
}
|
|
255
221
|
// ──────────────────────────────────────────────────────────────────────────
|
|
256
222
|
// 步骤 6:基础格局标签
|
|
257
223
|
// ──────────────────────────────────────────────────────────────────────────
|
|
258
|
-
// 《烟波钓叟歌》:
|
|
259
|
-
// "星反吟兮门反吟,门迫宫兮事难行"
|
|
260
|
-
// "击刑之处防官非,十干入墓主事迟"
|
|
261
|
-
// "三奇得使最为良,符使同宫事必成"
|
|
262
|
-
//
|
|
263
|
-
// 检测以下标签:
|
|
264
|
-
// 星伏吟/星反吟、门伏吟/门反吟、门迫、
|
|
265
|
-
// 击刑、入墓、三奇得、符使同宫、三奇得使、马星
|
|
266
224
|
const patternTags = getQimenPatternTags({
|
|
267
225
|
zhiFu,
|
|
268
226
|
zhiShi,
|
|
269
227
|
zhiFuLandingPalace,
|
|
270
228
|
zhiShiLandingPalace,
|
|
271
229
|
jiuGongGe,
|
|
272
|
-
hourGanForFind,
|
|
230
|
+
hourGanForFind: activeGanForFind,
|
|
273
231
|
horsePalace: horsePalace?.palace,
|
|
274
232
|
horsePalaceName: horsePalace?.name,
|
|
275
233
|
});
|
|
276
234
|
// ──────────────────────────────────────────────────────────────────────────
|
|
277
|
-
// 步骤 7
|
|
235
|
+
// 步骤 7:标签详情
|
|
278
236
|
// ──────────────────────────────────────────────────────────────────────────
|
|
279
237
|
const patternDetails = buildPatternDetails(patternTags);
|
|
280
238
|
// ──────────────────────────────────────────────────────────────────────────
|
|
281
|
-
// 步骤 8
|
|
239
|
+
// 步骤 8:经典格局
|
|
282
240
|
// ──────────────────────────────────────────────────────────────────────────
|
|
283
|
-
// 《烟波钓叟歌》:
|
|
284
|
-
// "天遁地遁与人遁,龙遁虎遁与风遁,云遁鬼遁与神遁" —— 九遁
|
|
285
|
-
// "三奇得使最为良,玉女守门喜非常" —— 三奇/玉女
|
|
286
|
-
// "十干入墓主事迟,击刑之处防官非" —— 入墓/击刑
|
|
287
|
-
// "门迫宫兮事难行" —— 门迫
|
|
288
|
-
//
|
|
289
|
-
// 综合识别:九遁、三奇得使/升殿/入墓/会甲、符使同宫、
|
|
290
|
-
// 天乙飞干格/伏干格、天辅时、玉女守门、门迫、门宫相生、击刑、入墓
|
|
291
241
|
const dayStem = ganzhi.day.charAt(0);
|
|
292
242
|
const classicPatternContext = {
|
|
293
243
|
jiuGongGe,
|
|
@@ -298,21 +248,13 @@ export function generateQimen(customDate, method = 'zhuanpan') {
|
|
|
298
248
|
const classicPatternsRaw = getClassicPatterns(classicPatternContext);
|
|
299
249
|
const classicPatterns = mapClassicPatterns(classicPatternsRaw);
|
|
300
250
|
// ──────────────────────────────────────────────────────────────────────────
|
|
301
|
-
// 步骤 9
|
|
251
|
+
// 步骤 9:天地盘干关系
|
|
302
252
|
// ──────────────────────────────────────────────────────────────────────────
|
|
303
|
-
// 每个宫位输出天盘干与地盘干的主要关系:
|
|
304
|
-
// 五行生克(克上/克下/生上/生下/比和)
|
|
305
|
-
// 奇仪相合、入墓、击刑
|
|
306
|
-
// 最多每宫输出一条主关系 + 边缘关系
|
|
307
253
|
const stemRelationsRaw = getStemRelations(jiuGongGe);
|
|
308
254
|
const stemRelations = mapStemRelations(stemRelationsRaw);
|
|
309
255
|
// ──────────────────────────────────────────────────────────────────────────
|
|
310
256
|
// 步骤 10:宫位洞察
|
|
311
257
|
// ──────────────────────────────────────────────────────────────────────────
|
|
312
|
-
// 综合门、神、星和模式标签,逐宫判定:
|
|
313
|
-
// 有利(绿色):吉门/吉神,适合行动
|
|
314
|
-
// 关注(黄色):值符所在,全局核心观察位
|
|
315
|
-
// 风险(红色):凶门/凶神/门迫/击刑/入墓,宜谨慎
|
|
316
258
|
const palaceInsights = buildPalaceInsights({
|
|
317
259
|
jiuGongGe,
|
|
318
260
|
zhiFu,
|
|
@@ -322,21 +264,10 @@ export function generateQimen(customDate, method = 'zhuanpan') {
|
|
|
322
264
|
// ──────────────────────────────────────────────────────────────────────────
|
|
323
265
|
// 步骤 11:方位建议
|
|
324
266
|
// ──────────────────────────────────────────────────────────────────────────
|
|
325
|
-
// 《烟波钓叟歌》:"八门若遇开休生,诸事逢之总称情"
|
|
326
|
-
//
|
|
327
|
-
// 综合评分(门/神/星/三奇/空亡/经典格局):
|
|
328
|
-
// 吉方:Top 3 高分区位,含推荐用途
|
|
329
|
-
// 避方:1 个最低分区位,含风险原因
|
|
330
267
|
const directions = buildDirectionAdvice(jiuGongGe, voidBranches, classicPatternsRaw);
|
|
331
268
|
// ──────────────────────────────────────────────────────────────────────────
|
|
332
269
|
// 步骤 12:应期估算
|
|
333
270
|
// ──────────────────────────────────────────────────────────────────────────
|
|
334
|
-
// 《奇门遁甲大全》应期章:
|
|
335
|
-
// 1. 用神落宫基线(内宫 1-3 速应,中宫 4-6 渐进,外宫 7-9 迟应)
|
|
336
|
-
// 2. 值符值使落宫调整
|
|
337
|
-
// 3. 庚格定应期(阳日看庚下、阴日看庚上,地支逢冲为应)
|
|
338
|
-
// 4. 伏吟延迟 / 反吟加快 / 马星加快 / 空亡填实
|
|
339
|
-
// 5. 经典格局影响(吉格加快 / 凶格延迟)
|
|
340
271
|
const isFuyin = patternTags.some((t) => t.includes('伏吟'));
|
|
341
272
|
const isFanyin = patternTags.some((t) => t.includes('反吟'));
|
|
342
273
|
const hasVoid = voidBranches.length > 0;
|
|
@@ -348,7 +279,7 @@ export function generateQimen(customDate, method = 'zhuanpan') {
|
|
|
348
279
|
hasVoid,
|
|
349
280
|
zhiFuLandingPalace,
|
|
350
281
|
zhiShiLandingPalace,
|
|
351
|
-
hourGanZhi:
|
|
282
|
+
hourGanZhi: activeGanZhi,
|
|
352
283
|
classicPatterns: classicPatternsRaw,
|
|
353
284
|
voidBranches,
|
|
354
285
|
});
|
|
@@ -356,6 +287,7 @@ export function generateQimen(customDate, method = 'zhuanpan') {
|
|
|
356
287
|
// 步骤 13:返回完整 QimenData
|
|
357
288
|
// ──────────────────────────────────────────────────────────────────────────
|
|
358
289
|
return {
|
|
290
|
+
scope,
|
|
359
291
|
timeInfo: {
|
|
360
292
|
solarTerm: jushuResult.jieQi || jieQi,
|
|
361
293
|
epoch: jushuResult.yuan,
|
|
@@ -370,7 +302,7 @@ export function generateQimen(customDate, method = 'zhuanpan') {
|
|
|
370
302
|
palaceInsights,
|
|
371
303
|
voidBranches,
|
|
372
304
|
voidPalaces,
|
|
373
|
-
horseStar: horsePalace ? { ...horsePalace, sourceBranch:
|
|
305
|
+
horseStar: horsePalace ? { ...horsePalace, sourceBranch: activeZhi } : undefined,
|
|
374
306
|
specialConditions,
|
|
375
307
|
jiuGongGe,
|
|
376
308
|
classicPatterns,
|
|
@@ -381,6 +313,77 @@ export function generateQimen(customDate, method = 'zhuanpan') {
|
|
|
381
313
|
};
|
|
382
314
|
}
|
|
383
315
|
// ============================================================================
|
|
316
|
+
// 内部辅助函数(不同 scope 对应的定局/寻符使逻辑)
|
|
317
|
+
// ============================================================================
|
|
318
|
+
/** 根据 scope 获取主动干支 */
|
|
319
|
+
function getActiveGanZhi(ganzhi, scope) {
|
|
320
|
+
switch (scope) {
|
|
321
|
+
case 'year': return ganzhi.year;
|
|
322
|
+
case 'month': return ganzhi.month;
|
|
323
|
+
case 'day': return ganzhi.day;
|
|
324
|
+
default: return ganzhi.hour;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/** 根据 scope 获取定局结果 */
|
|
328
|
+
function getJushuForScope(scope, ganzhi, timeInfo) {
|
|
329
|
+
switch (scope) {
|
|
330
|
+
case 'year': {
|
|
331
|
+
const r = getYearQimenJuShu(ganzhi.year);
|
|
332
|
+
return { ...r, jieQi: timeInfo.jieQi };
|
|
333
|
+
}
|
|
334
|
+
case 'month': {
|
|
335
|
+
const r = getMonthQimenJuShu(ganzhi.month, ganzhi.year);
|
|
336
|
+
return { ...r, jieQi: timeInfo.jieQi };
|
|
337
|
+
}
|
|
338
|
+
case 'day':
|
|
339
|
+
case 'hour':
|
|
340
|
+
default: {
|
|
341
|
+
return getQimenJuShu({
|
|
342
|
+
jieQi: timeInfo.jieQi,
|
|
343
|
+
ganzhi: { day: ganzhi.day },
|
|
344
|
+
solar: {
|
|
345
|
+
year: timeInfo.solar.year,
|
|
346
|
+
month: timeInfo.solar.month,
|
|
347
|
+
day: timeInfo.solar.day,
|
|
348
|
+
},
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
/** 根据 scope 获取值符值使 */
|
|
354
|
+
function getZhiFuShiForScope(scope, activeGanZhi, ganzhi) {
|
|
355
|
+
const defaultSpecialConditions = {
|
|
356
|
+
isLiuJiaHour: false,
|
|
357
|
+
isLiuGuiHour: false,
|
|
358
|
+
isShiGanRuMu: false,
|
|
359
|
+
isWuBuYuShi: false,
|
|
360
|
+
description: '',
|
|
361
|
+
};
|
|
362
|
+
switch (scope) {
|
|
363
|
+
case 'hour': {
|
|
364
|
+
// 时家奇门:支持特殊时辰检查
|
|
365
|
+
const result = getZhiFuZhiShi(activeGanZhi);
|
|
366
|
+
return {
|
|
367
|
+
zhiFu: result.zhiFu,
|
|
368
|
+
zhiShi: result.zhiShi,
|
|
369
|
+
specialConditions: result.specialConditions,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
case 'day':
|
|
373
|
+
case 'month':
|
|
374
|
+
case 'year':
|
|
375
|
+
default: {
|
|
376
|
+
// 日/月/年家:使用通用旬首法(不检查特殊时辰条件)
|
|
377
|
+
const result = getZhiFuZhiShiByGanZhi(activeGanZhi);
|
|
378
|
+
return {
|
|
379
|
+
zhiFu: result.zhiFu,
|
|
380
|
+
zhiShi: result.zhiShi,
|
|
381
|
+
specialConditions: defaultSpecialConditions,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
// ============================================================================
|
|
384
387
|
// 导出内部工具(供外部模块或测试使用)
|
|
385
388
|
// ============================================================================
|
|
386
389
|
export { getHorseBranch, resolveQimenBranchPalace };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/divination/algorithms/qimen/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/divination/algorithms/qimen/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import type { SsgwData } from '../../types/divination';
|
|
2
2
|
/**
|
|
3
3
|
* 随机求签 - 模拟真实的求签过程
|
|
4
|
+
*
|
|
5
|
+
* 从三山国王 92 支签文中随机抽取一条作为占卜结果,
|
|
6
|
+
* 自动附带求签时间的干支和 Unix 时间戳。
|
|
7
|
+
*
|
|
8
|
+
* @param customDate 自定义求签时间(可选),不传则使用当前时间。
|
|
9
|
+
* 传入后签文结果的 `ganzhi` 和 `timestamp` 会基于该时间生成。
|
|
10
|
+
* @returns 完整的签文结果 SsgwData,包含签号、标题、签诗、典故、详解和求签时间干支。
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* // 当前时间求签
|
|
15
|
+
* const sign = drawRandomSign();
|
|
16
|
+
*
|
|
17
|
+
* // 指定时间求签
|
|
18
|
+
* const sign = drawRandomSign(new Date('2025-06-15T10:00:00'));
|
|
19
|
+
* ```
|
|
4
20
|
*/
|
|
5
|
-
export declare function drawRandomSign(): SsgwData;
|
|
21
|
+
export declare function drawRandomSign(customDate?: Date): SsgwData;
|
|
6
22
|
//# sourceMappingURL=ssgw.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssgw.d.ts","sourceRoot":"","sources":["../../../src/divination/algorithms/ssgw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAoBvD
|
|
1
|
+
{"version":3,"file":"ssgw.d.ts","sourceRoot":"","sources":["../../../src/divination/algorithms/ssgw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAoBvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,QAAQ,CAS1D"}
|
|
@@ -16,9 +16,25 @@ const ssgwSigns = SSGW_SIGNS.map((sign) => ({
|
|
|
16
16
|
}));
|
|
17
17
|
/**
|
|
18
18
|
* 随机求签 - 模拟真实的求签过程
|
|
19
|
+
*
|
|
20
|
+
* 从三山国王 92 支签文中随机抽取一条作为占卜结果,
|
|
21
|
+
* 自动附带求签时间的干支和 Unix 时间戳。
|
|
22
|
+
*
|
|
23
|
+
* @param customDate 自定义求签时间(可选),不传则使用当前时间。
|
|
24
|
+
* 传入后签文结果的 `ganzhi` 和 `timestamp` 会基于该时间生成。
|
|
25
|
+
* @returns 完整的签文结果 SsgwData,包含签号、标题、签诗、典故、详解和求签时间干支。
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* // 当前时间求签
|
|
30
|
+
* const sign = drawRandomSign();
|
|
31
|
+
*
|
|
32
|
+
* // 指定时间求签
|
|
33
|
+
* const sign = drawRandomSign(new Date('2025-06-15T10:00:00'));
|
|
34
|
+
* ```
|
|
19
35
|
*/
|
|
20
|
-
export function drawRandomSign() {
|
|
21
|
-
const { ganzhi, timestamp } = getDivinationTime();
|
|
36
|
+
export function drawRandomSign(customDate) {
|
|
37
|
+
const { ganzhi, timestamp } = getDivinationTime(customDate);
|
|
22
38
|
const randomIndex = Math.floor(Math.random() * ssgwSigns.length);
|
|
23
39
|
const sign = ssgwSigns[randomIndex];
|
|
24
40
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssgw.js","sourceRoot":"","sources":["../../../src/divination/algorithms/ssgw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;;;GAMG;AAEH,MAAM,SAAS,GAA6C,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,EAAE,IAAI,CAAC,EAAE;IACf,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC,OAAO;IAClB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,OAAO,EAAE,IAAI,CAAC,OAAO;CACtB,CAAC,CAAC,CAAC;AAEJ
|
|
1
|
+
{"version":3,"file":"ssgw.js","sourceRoot":"","sources":["../../../src/divination/algorithms/ssgw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D;;;;;;GAMG;AAEH,MAAM,SAAS,GAA6C,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,EAAE,IAAI,CAAC,EAAE;IACf,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC,OAAO;IAClB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,OAAO,EAAE,IAAI,CAAC,OAAO;CACtB,CAAC,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,UAAiB;IAC9C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO;QACL,GAAG,IAAI;QACP,SAAS;QACT,MAAM;KACP,CAAC;AACJ,CAAC"}
|