liuyao 0.2.0 → 0.2.1
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/index.d.ts +7 -2
- package/dist/index.mjs +55 -48
- package/dist/parser.skill.js +1 -0
- package/package.json +4 -1
package/dist/index.d.ts
CHANGED
|
@@ -249,6 +249,10 @@ declare class Hexagram {
|
|
|
249
249
|
* Try to create a Hexagram from an array of counts of Yang. If the input is invalid, null will be returned.
|
|
250
250
|
*/
|
|
251
251
|
static fromYangCounts(counts: number[]): Hexagram | null;
|
|
252
|
+
/**
|
|
253
|
+
* Create a Hexagram from its id, which is the name of the hexagram without the palace name.
|
|
254
|
+
* @param id "坤为地", "地雷复", "地水师"
|
|
255
|
+
*/
|
|
252
256
|
static fromId(id: string): Hexagram | null;
|
|
253
257
|
/**
|
|
254
258
|
* Find Original Palace Hexagram by the palace name, which is the last character of the hexagram id. For example, '天' for '乾为天', '地' for '坤为地', etc.
|
|
@@ -298,15 +302,16 @@ declare class Hexagram {
|
|
|
298
302
|
toAIReadable(): {
|
|
299
303
|
本卦: HexagramAIReadable<'本卦'>;
|
|
300
304
|
变卦: HexagramAIReadable<'变卦'> | null;
|
|
305
|
+
世应变化: string;
|
|
301
306
|
};
|
|
302
307
|
clone(): Hexagram;
|
|
303
308
|
toString(): string;
|
|
304
309
|
[Symbol.toPrimitive](): string;
|
|
305
310
|
}
|
|
306
311
|
interface YaoInfo {
|
|
307
|
-
|
|
312
|
+
爻: string;
|
|
308
313
|
类型: '世' | '应' | null;
|
|
309
|
-
|
|
314
|
+
六亲地支五行: string;
|
|
310
315
|
}
|
|
311
316
|
interface HexagramAIReadable<T extends '本卦' | '变卦'> {
|
|
312
317
|
初爻: YaoInfo;
|
package/dist/index.mjs
CHANGED
|
@@ -1720,75 +1720,82 @@ class l {
|
|
|
1720
1720
|
return e.join(",");
|
|
1721
1721
|
}
|
|
1722
1722
|
toAIReadable() {
|
|
1723
|
-
const n = this.info.setupInfo, i = this.toChanged(), e = i?.info.setupInfo;
|
|
1723
|
+
const n = this.info.setupInfo, i = this.toChanged(), e = i?.info.setupInfo, s = [];
|
|
1724
|
+
if (e) {
|
|
1725
|
+
const n = this.yaos.map((n, i) => n.isDynamic ? i : null).filter(n => null !== n);
|
|
1726
|
+
e.forEach((e, t) => {
|
|
1727
|
+
n.includes(t) && ("世" === e.hostGuest && s.push(`新世爻为${i.info.id}的${r[t]}`), "应" === e.hostGuest && s.push(`新应爻为${i.info.id}的${r[t]}`));
|
|
1728
|
+
});
|
|
1729
|
+
} else s.push("没有新的世应爻出现,世应不变");
|
|
1724
1730
|
return {
|
|
1725
1731
|
"本卦": {
|
|
1726
|
-
"
|
|
1727
|
-
"
|
|
1728
|
-
"类型": n[
|
|
1729
|
-
"
|
|
1730
|
-
},
|
|
1731
|
-
"二爻": {
|
|
1732
|
-
"爻象": this.yaos[1].name,
|
|
1733
|
-
"类型": n[1].hostGuest || null,
|
|
1734
|
-
"六亲五行": n[1].kin
|
|
1732
|
+
"上爻": {
|
|
1733
|
+
"爻": this.yaos[5].name,
|
|
1734
|
+
"类型": n[5].hostGuest || null,
|
|
1735
|
+
"六亲地支五行": n[5].kin
|
|
1735
1736
|
},
|
|
1736
|
-
"
|
|
1737
|
-
"
|
|
1738
|
-
"类型": n[
|
|
1739
|
-
"
|
|
1737
|
+
"五爻": {
|
|
1738
|
+
"爻": this.yaos[4].name,
|
|
1739
|
+
"类型": n[4].hostGuest || null,
|
|
1740
|
+
"六亲地支五行": n[4].kin
|
|
1740
1741
|
},
|
|
1741
1742
|
"四爻": {
|
|
1742
|
-
"
|
|
1743
|
+
"爻": this.yaos[3].name,
|
|
1743
1744
|
"类型": n[3].hostGuest || null,
|
|
1744
|
-
"
|
|
1745
|
+
"六亲地支五行": n[3].kin
|
|
1745
1746
|
},
|
|
1746
|
-
"
|
|
1747
|
-
"
|
|
1748
|
-
"类型": n[
|
|
1749
|
-
"
|
|
1747
|
+
"三爻": {
|
|
1748
|
+
"爻": this.yaos[2].name,
|
|
1749
|
+
"类型": n[2].hostGuest || null,
|
|
1750
|
+
"六亲地支五行": n[2].kin
|
|
1750
1751
|
},
|
|
1751
|
-
"
|
|
1752
|
-
"
|
|
1753
|
-
"类型": n[
|
|
1754
|
-
"
|
|
1752
|
+
"二爻": {
|
|
1753
|
+
"爻": this.yaos[1].name,
|
|
1754
|
+
"类型": n[1].hostGuest || null,
|
|
1755
|
+
"六亲地支五行": n[1].kin
|
|
1756
|
+
},
|
|
1757
|
+
"初爻": {
|
|
1758
|
+
"爻": this.yaos[0].name,
|
|
1759
|
+
"类型": n[0].hostGuest || null,
|
|
1760
|
+
"六亲地支五行": n[0].kin
|
|
1755
1761
|
},
|
|
1756
1762
|
"卦名": this.info.id,
|
|
1757
1763
|
"变爻": this.isDynamic ? this.yaos.map((n, i) => n.isDynamic ? r[i] : null).filter(n => null !== n) : void 0
|
|
1758
1764
|
},
|
|
1759
1765
|
"变卦": e ? {
|
|
1760
|
-
"
|
|
1761
|
-
"
|
|
1762
|
-
"类型": e[
|
|
1763
|
-
"
|
|
1764
|
-
},
|
|
1765
|
-
"二爻": {
|
|
1766
|
-
"爻象": i.yaos[1].name,
|
|
1767
|
-
"类型": e[1].hostGuest || null,
|
|
1768
|
-
"六亲五行": e[1].kin
|
|
1766
|
+
"上爻": {
|
|
1767
|
+
"爻": i.yaos[5].name,
|
|
1768
|
+
"类型": e[5].hostGuest || null,
|
|
1769
|
+
"六亲地支五行": e[5].kin
|
|
1769
1770
|
},
|
|
1770
|
-
"
|
|
1771
|
-
"
|
|
1772
|
-
"类型": e[
|
|
1773
|
-
"
|
|
1771
|
+
"五爻": {
|
|
1772
|
+
"爻": i.yaos[4].name,
|
|
1773
|
+
"类型": e[4].hostGuest || null,
|
|
1774
|
+
"六亲地支五行": e[4].kin
|
|
1774
1775
|
},
|
|
1775
1776
|
"四爻": {
|
|
1776
|
-
"
|
|
1777
|
+
"爻": i.yaos[3].name,
|
|
1777
1778
|
"类型": e[3].hostGuest || null,
|
|
1778
|
-
"
|
|
1779
|
+
"六亲地支五行": e[3].kin
|
|
1779
1780
|
},
|
|
1780
|
-
"
|
|
1781
|
-
"
|
|
1782
|
-
"类型": e[
|
|
1783
|
-
"
|
|
1781
|
+
"三爻": {
|
|
1782
|
+
"爻": i.yaos[2].name,
|
|
1783
|
+
"类型": e[2].hostGuest || null,
|
|
1784
|
+
"六亲地支五行": e[2].kin
|
|
1784
1785
|
},
|
|
1785
|
-
"
|
|
1786
|
-
"
|
|
1787
|
-
"类型": e[
|
|
1788
|
-
"
|
|
1786
|
+
"二爻": {
|
|
1787
|
+
"爻": i.yaos[1].name,
|
|
1788
|
+
"类型": e[1].hostGuest || null,
|
|
1789
|
+
"六亲地支五行": e[1].kin
|
|
1790
|
+
},
|
|
1791
|
+
"初爻": {
|
|
1792
|
+
"爻": i.yaos[0].name,
|
|
1793
|
+
"类型": e[0].hostGuest || null,
|
|
1794
|
+
"六亲地支五行": e[0].kin
|
|
1789
1795
|
},
|
|
1790
1796
|
"卦名": i.info.id
|
|
1791
|
-
} : null
|
|
1797
|
+
} : null,
|
|
1798
|
+
"世应变化": s.join(",")
|
|
1792
1799
|
};
|
|
1793
1800
|
}
|
|
1794
1801
|
clone() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const n=Object.freeze([{binary:"000000",id:"坤为地",sign:"䷁",phase:"土",palace:"坤",palaceIndex:0,setupInfo:[{kin:"兄弟未土"},{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"应"},{kin:"兄弟丑土"},{kin:"妻财亥水"},{kin:"子孙酉金",hostGuest:"世"}],yangCounts:[2,2,2,2,2,2]},{binary:"100000",id:"地雷复",sign:"䷗",phase:"土",palace:"坤",palaceIndex:1,setupInfo:[{kin:"妻财子水",hostGuest:"世"},{kin:"官鬼寅木"},{kin:"兄弟辰土"},{kin:"兄弟丑土",hostGuest:"应"},{kin:"妻财亥水"},{kin:"子孙酉金"}],yangCounts:[1,2,2,2,2,2]},{binary:"010000",id:"地水师",sign:"䷆",phase:"水",palace:"坎",palaceIndex:7,setupInfo:[{kin:"子孙寅木"},{kin:"官鬼辰土"},{kin:"妻财午火",hostGuest:"世"},{kin:"官鬼丑土"},{kin:"兄弟亥水"},{kin:"父母酉金",hostGuest:"应"}],yangCounts:[2,1,2,2,2,2]},{binary:"110000",id:"地泽临",sign:"䷒",phase:"土",palace:"坤",palaceIndex:2,setupInfo:[{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"世"},{kin:"兄弟丑土"},{kin:"兄弟丑土"},{kin:"妻财亥水",hostGuest:"应"},{kin:"子孙酉金"}],yangCounts:[1,1,2,2,2,2]},{binary:"001000",id:"地山谦",sign:"䷎",phase:"土",palace:"兑",palaceIndex:5,setupInfo:[{kin:"父母辰土"},{kin:"官鬼午火",hostGuest:"应"},{kin:"兄弟申金"},{kin:"父母丑土"},{kin:"子孙亥水",hostGuest:"世"},{kin:"兄弟酉金"}],yangCounts:[2,2,1,2,2,2]},{binary:"101000",id:"地火明夷",sign:"䷣",phase:"水",palace:"坎",palaceIndex:6,setupInfo:[{kin:"子孙卯木",hostGuest:"应"},{kin:"官鬼丑土"},{kin:"兄弟亥水"},{kin:"官鬼丑土",hostGuest:"世"},{kin:"兄弟亥水"},{kin:"父母酉金"}],yangCounts:[1,2,1,2,2,2]},{binary:"011000",id:"地风升",sign:"䷭",phase:"木",palace:"震",palaceIndex:4,setupInfo:[{kin:"妻财丑土",hostGuest:"应"},{kin:"父母亥水"},{kin:"官鬼酉金"},{kin:"妻财丑土",hostGuest:"世"},{kin:"父母亥水"},{kin:"官鬼酉金"}],yangCounts:[2,1,1,2,2,2]},{binary:"111000",id:"地天泰",sign:"䷊",phase:"土",palace:"坤",palaceIndex:3,setupInfo:[{kin:"妻财子水"},{kin:"官鬼寅木"},{kin:"兄弟辰土",hostGuest:"世"},{kin:"兄弟丑土"},{kin:"妻财亥水"},{kin:"子孙酉金",hostGuest:"应"}],yangCounts:[1,1,1,2,2,2]},{binary:"000100",id:"雷地豫",sign:"䷏",phase:"木",palace:"震",palaceIndex:1,setupInfo:[{kin:"妻财未土",hostGuest:"世"},{kin:"子孙巳火"},{kin:"兄弟卯木"},{kin:"子孙午火",hostGuest:"应"},{kin:"官鬼申金"},{kin:"妻财戌土"}],yangCounts:[2,2,2,1,2,2]},{binary:"100100",id:"震为雷",sign:"䷲",phase:"木",palace:"震",palaceIndex:0,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"应"},{kin:"子孙午火"},{kin:"官鬼申金"},{kin:"妻财戌土",hostGuest:"世"}],yangCounts:[1,2,2,1,2,2]},{binary:"010100",id:"雷水解",sign:"䷧",phase:"木",palace:"震",palaceIndex:2,setupInfo:[{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"世"},{kin:"子孙午火"},{kin:"子孙午火"},{kin:"官鬼申金",hostGuest:"应"},{kin:"妻财戌土"}],yangCounts:[2,1,2,1,2,2]},{binary:"110100",id:"雷泽归妹",sign:"䷵",phase:"金",palace:"兑",palaceIndex:7,setupInfo:[{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"父母丑土",hostGuest:"世"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"父母戌土",hostGuest:"应"}],yangCounts:[1,1,2,1,2,2]},{binary:"001100",id:"雷山小过",sign:"䷽",phase:"金",palace:"兑",palaceIndex:6,setupInfo:[{kin:"父母辰土",hostGuest:"应"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"官鬼午火",hostGuest:"世"},{kin:"兄弟申金"},{kin:"父母戌土"}],yangCounts:[2,2,1,1,2,2]},{binary:"101100",id:"雷火丰",sign:"䷶",phase:"水",palace:"坎",palaceIndex:5,setupInfo:[{kin:"子孙卯木"},{kin:"官鬼丑土",hostGuest:"应"},{kin:"兄弟亥水"},{kin:"妻财午火"},{kin:"父母申金",hostGuest:"世"},{kin:"官鬼戌土"}],yangCounts:[1,2,1,1,2,2]},{binary:"011100",id:"雷风恒",sign:"䷟",phase:"木",palace:"震",palaceIndex:3,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水"},{kin:"官鬼酉金",hostGuest:"世"},{kin:"子孙午火"},{kin:"官鬼申金"},{kin:"妻财戌土",hostGuest:"应"}],yangCounts:[2,1,1,1,2,2]},{binary:"111100",id:"雷天大壮",sign:"䷡",phase:"土",palace:"坤",palaceIndex:4,setupInfo:[{kin:"妻财子水",hostGuest:"应"},{kin:"官鬼寅木"},{kin:"兄弟辰土"},{kin:"父母午火",hostGuest:"世"},{kin:"子孙申金"},{kin:"兄弟戌土"}],yangCounts:[1,1,1,1,2,2]},{binary:"000010",id:"水地比",sign:"䷇",phase:"土",palace:"坤",palaceIndex:7,setupInfo:[{kin:"兄弟未土"},{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"世"},{kin:"子孙申金"},{kin:"兄弟戌土"},{kin:"妻财子水",hostGuest:"应"}],yangCounts:[2,2,2,2,1,2]},{binary:"100010",id:"水雷屯",sign:"䷂",phase:"水",palace:"坎",palaceIndex:2,setupInfo:[{kin:"兄弟子水"},{kin:"子孙寅木",hostGuest:"世"},{kin:"官鬼辰土"},{kin:"父母申金"},{kin:"官鬼戌土",hostGuest:"应"},{kin:"兄弟子水"}],yangCounts:[1,2,2,2,1,2]},{binary:"010010",id:"坎为水",sign:"䷜",phase:"水",palace:"坎",palaceIndex:0,setupInfo:[{kin:"子孙寅木"},{kin:"官鬼辰土"},{kin:"妻财午火",hostGuest:"应"},{kin:"父母申金"},{kin:"官鬼戌土"},{kin:"兄弟子水",hostGuest:"世"}],yangCounts:[2,1,2,2,1,2]},{binary:"110010",id:"水泽节",sign:"䷻",phase:"水",palace:"坎",palaceIndex:1,setupInfo:[{kin:"妻财巳火",hostGuest:"世"},{kin:"子孙卯木"},{kin:"官鬼丑土"},{kin:"父母申金",hostGuest:"应"},{kin:"官鬼戌土"},{kin:"兄弟子水"}],yangCounts:[1,1,2,2,1,2]},{binary:"001010",id:"水山蹇",sign:"䷦",phase:"金",palace:"兑",palaceIndex:4,setupInfo:[{kin:"父母辰土",hostGuest:"应"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"兄弟申金",hostGuest:"世"},{kin:"父母戌土"},{kin:"子孙子水"}],yangCounts:[2,2,1,2,1,2]},{binary:"101010",id:"水火既济",sign:"䷾",phase:"水",palace:"坎",palaceIndex:3,setupInfo:[{kin:"子孙卯木"},{kin:"官鬼丑土"},{kin:"兄弟亥水",hostGuest:"世"},{kin:"父母申金"},{kin:"官鬼戌土"},{kin:"兄弟子水",hostGuest:"应"}],yangCounts:[1,2,1,2,1,2]},{binary:"011010",id:"水风井",sign:"䷯",phase:"木",palace:"震",palaceIndex:5,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水",hostGuest:"应"},{kin:"官鬼酉金"},{kin:"官鬼申金"},{kin:"妻财戌土",hostGuest:"世"},{kin:"父母子水"}],yangCounts:[2,1,1,2,1,2]},{binary:"111010",id:"水天需",sign:"䷄",phase:"土",palace:"坤",palaceIndex:6,setupInfo:[{kin:"妻财子水",hostGuest:"应"},{kin:"官鬼寅木"},{kin:"兄弟辰土"},{kin:"子孙申金",hostGuest:"世"},{kin:"兄弟戌土"},{kin:"妻财子水"}],yangCounts:[1,1,1,2,1,2]},{binary:"000110",id:"泽地萃",sign:"䷬",phase:"金",palace:"兑",palaceIndex:2,setupInfo:[{kin:"父母未土"},{kin:"官鬼巳火",hostGuest:"世"},{kin:"妻财卯木"},{kin:"子孙亥水"},{kin:"兄弟酉金",hostGuest:"应"},{kin:"父母未土"}],yangCounts:[2,2,2,1,1,2]},{binary:"100110",id:"泽雷随",sign:"䷐",phase:"木",palace:"震",palaceIndex:7,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"世"},{kin:"父母亥水"},{kin:"官鬼酉金"},{kin:"妻财未土",hostGuest:"应"}],yangCounts:[1,2,2,1,1,2]},{binary:"010110",id:"泽水困",sign:"䷮",phase:"金",palace:"兑",palaceIndex:1,setupInfo:[{kin:"妻财卯木",hostGuest:"世"},{kin:"父母辰土"},{kin:"官鬼午火"},{kin:"子孙亥水",hostGuest:"应"},{kin:"兄弟酉金"},{kin:"父母未土"}],yangCounts:[2,1,2,1,1,2]},{binary:"110110",id:"兑为泽",sign:"䷹",phase:"金",palace:"兑",palaceIndex:0,setupInfo:[{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"父母丑土",hostGuest:"应"},{kin:"子孙亥水"},{kin:"兄弟酉金"},{kin:"父母未土",hostGuest:"世"}],yangCounts:[1,1,2,1,1,2]},{binary:"001110",id:"泽山咸",sign:"䷞",phase:"金",palace:"兑",palaceIndex:3,setupInfo:[{kin:"父母辰土"},{kin:"官鬼午火"},{kin:"兄弟申金",hostGuest:"世"},{kin:"子孙亥水"},{kin:"兄弟酉金"},{kin:"父母未土",hostGuest:"应"}],yangCounts:[2,2,1,1,1,2]},{binary:"101110",id:"泽火革",sign:"䷰",phase:"水",palace:"坎",palaceIndex:4,setupInfo:[{kin:"子孙卯木",hostGuest:"应"},{kin:"官鬼丑土"},{kin:"兄弟亥水"},{kin:"兄弟亥水",hostGuest:"世"},{kin:"父母酉金"},{kin:"官鬼未土"}],yangCounts:[1,2,1,1,1,2]},{binary:"011110",id:"泽风大过",sign:"䷛",phase:"木",palace:"震",palaceIndex:6,setupInfo:[{kin:"妻财丑土",hostGuest:"应"},{kin:"父母亥水"},{kin:"官鬼酉金"},{kin:"父母亥水",hostGuest:"世"},{kin:"官鬼酉金"},{kin:"妻财未土"}],yangCounts:[2,1,1,1,1,2]},{binary:"111110",id:"泽天夬",sign:"䷪",phase:"土",palace:"坤",palaceIndex:5,setupInfo:[{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"应"},{kin:"兄弟辰土"},{kin:"妻财亥水"},{kin:"子孙酉金",hostGuest:"世"},{kin:"兄弟未土"}],yangCounts:[1,1,1,1,1,2]},{binary:"000001",id:"山地剥",sign:"䷖",phase:"金",palace:"乾",palaceIndex:5,setupInfo:[{kin:"父母未土"},{kin:"官鬼巳火",hostGuest:"应"},{kin:"妻财卯木"},{kin:"父母戌土"},{kin:"子孙子水",hostGuest:"世"},{kin:"妻财卯木"}],yangCounts:[2,2,2,2,2,1]},{binary:"100001",id:"山雷颐",sign:"䷚",phase:"木",palace:"巽",palaceIndex:6,setupInfo:[{kin:"父母子水",hostGuest:"应"},{kin:"兄弟寅木"},{kin:"妻财辰土"},{kin:"妻财戌土",hostGuest:"世"},{kin:"父母子水"},{kin:"兄弟寅木"}],yangCounts:[1,2,2,2,2,1]},{binary:"010001",id:"山水蒙",sign:"䷃",phase:"火",palace:"离",palaceIndex:4,setupInfo:[{kin:"父母寅木",hostGuest:"应"},{kin:"子孙辰土"},{kin:"兄弟午火"},{kin:"子孙戌土",hostGuest:"世"},{kin:"官鬼子水"},{kin:"父母寅木"}],yangCounts:[2,1,2,2,2,1]},{binary:"110001",id:"山泽损",sign:"䷨",phase:"土",palace:"艮",palaceIndex:3,setupInfo:[{kin:"父母巳火"},{kin:"官鬼卯木"},{kin:"兄弟丑土",hostGuest:"世"},{kin:"兄弟戌土"},{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"应"}],yangCounts:[1,1,2,2,2,1]},{binary:"001001",id:"艮为山",sign:"䷳",phase:"土",palace:"艮",palaceIndex:0,setupInfo:[{kin:"兄弟辰土"},{kin:"父母午火"},{kin:"子孙申金",hostGuest:"应"},{kin:"兄弟戌土"},{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"世"}],yangCounts:[2,2,1,2,2,1]},{binary:"101001",id:"山火贲",sign:"䷕",phase:"土",palace:"艮",palaceIndex:1,setupInfo:[{kin:"官鬼卯木",hostGuest:"世"},{kin:"兄弟丑土"},{kin:"妻财亥水"},{kin:"兄弟戌土",hostGuest:"应"},{kin:"妻财子水"},{kin:"官鬼寅木"}],yangCounts:[1,2,1,2,2,1]},{binary:"011001",id:"山风蛊",sign:"䷑",phase:"木",palace:"巽",palaceIndex:7,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水"},{kin:"官鬼酉金",hostGuest:"世"},{kin:"妻财戌土"},{kin:"父母子水"},{kin:"兄弟寅木",hostGuest:"应"}],yangCounts:[2,1,1,2,2,1]},{binary:"111001",id:"山天大畜",sign:"䷙",phase:"土",palace:"艮",palaceIndex:2,setupInfo:[{kin:"妻财子水"},{kin:"官鬼寅木",hostGuest:"世"},{kin:"兄弟辰土"},{kin:"兄弟戌土"},{kin:"妻财子水",hostGuest:"应"},{kin:"官鬼寅木"}],yangCounts:[1,1,1,2,2,1]},{binary:"000101",id:"火地晋",sign:"䷢",phase:"金",palace:"乾",palaceIndex:6,setupInfo:[{kin:"父母未土",hostGuest:"应"},{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"兄弟酉金",hostGuest:"世"},{kin:"父母未土"},{kin:"官鬼巳火"}],yangCounts:[2,2,2,1,2,1]},{binary:"100101",id:"火雷噬嗑",sign:"䷔",phase:"木",palace:"巽",palaceIndex:5,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木",hostGuest:"应"},{kin:"妻财辰土"},{kin:"官鬼酉金"},{kin:"妻财未土",hostGuest:"世"},{kin:"子孙巳火"}],yangCounts:[1,2,2,1,2,1]},{binary:"010101",id:"火水未济",sign:"䷿",phase:"火",palace:"离",palaceIndex:3,setupInfo:[{kin:"父母寅木"},{kin:"子孙辰土"},{kin:"兄弟午火",hostGuest:"世"},{kin:"妻财酉金"},{kin:"子孙未土"},{kin:"兄弟巳火",hostGuest:"应"}],yangCounts:[2,1,2,1,2,1]},{binary:"110101",id:"火泽睽",sign:"䷥",phase:"土",palace:"艮",palaceIndex:4,setupInfo:[{kin:"父母巳火",hostGuest:"应"},{kin:"官鬼卯木"},{kin:"兄弟丑土"},{kin:"子孙酉金",hostGuest:"世"},{kin:"兄弟未土"},{kin:"父母巳火"}],yangCounts:[1,1,2,1,2,1]},{binary:"001101",id:"火山旅",sign:"䷷",phase:"火",palace:"离",palaceIndex:1,setupInfo:[{kin:"子孙辰土",hostGuest:"世"},{kin:"兄弟午火"},{kin:"妻财申金"},{kin:"妻财酉金",hostGuest:"应"},{kin:"子孙未土"},{kin:"兄弟巳火"}],yangCounts:[2,2,1,1,2,1]},{binary:"101101",id:"离为火",sign:"䷝",phase:"火",palace:"离",palaceIndex:0,setupInfo:[{kin:"父母卯木"},{kin:"子孙丑土"},{kin:"官鬼亥水",hostGuest:"应"},{kin:"妻财酉金"},{kin:"子孙未土"},{kin:"兄弟巳火",hostGuest:"世"}],yangCounts:[1,2,1,1,2,1]},{binary:"011101",id:"火风鼎",sign:"䷱",phase:"火",palace:"离",palaceIndex:2,setupInfo:[{kin:"子孙丑土"},{kin:"官鬼亥水",hostGuest:"世"},{kin:"妻财酉金"},{kin:"妻财酉金"},{kin:"子孙未土",hostGuest:"应"},{kin:"兄弟巳火"}],yangCounts:[2,1,1,1,2,1]},{binary:"111101",id:"火天大有",sign:"䷍",phase:"金",palace:"乾",palaceIndex:7,setupInfo:[{kin:"子孙子水"},{kin:"妻财寅木"},{kin:"父母辰土",hostGuest:"世"},{kin:"兄弟酉金"},{kin:"父母未土"},{kin:"官鬼巳火",hostGuest:"应"}],yangCounts:[1,1,1,1,2,1]},{binary:"000011",id:"风地观",sign:"䷓",phase:"金",palace:"乾",palaceIndex:4,setupInfo:[{kin:"父母未土",hostGuest:"应"},{kin:"官鬼巳火"},{kin:"妻财卯木"},{kin:"父母未土",hostGuest:"世"},{kin:"官鬼巳火"},{kin:"妻财卯木"}],yangCounts:[2,2,2,2,1,1]},{binary:"100011",id:"风雷益",sign:"䷩",phase:"木",palace:"巽",palaceIndex:3,setupInfo:[{kin:"父母子水"},{kin:"兄弟寅木"},{kin:"妻财辰土",hostGuest:"世"},{kin:"妻财未土"},{kin:"子孙巳火"},{kin:"兄弟卯木",hostGuest:"应"}],yangCounts:[1,2,2,2,1,1]},{binary:"010011",id:"风水涣",sign:"䷺",phase:"火",palace:"离",palaceIndex:5,setupInfo:[{kin:"父母寅木"},{kin:"子孙辰土",hostGuest:"应"},{kin:"兄弟午火"},{kin:"子孙未土"},{kin:"兄弟巳火",hostGuest:"世"},{kin:"父母卯木"}],yangCounts:[2,1,2,2,1,1]},{binary:"110011",id:"风泽中孚",sign:"䷼",phase:"土",palace:"艮",palaceIndex:6,setupInfo:[{kin:"父母巳火",hostGuest:"应"},{kin:"官鬼卯木"},{kin:"兄弟丑土"},{kin:"兄弟未土",hostGuest:"世"},{kin:"父母巳火"},{kin:"官鬼卯木"}],yangCounts:[1,1,2,2,1,1]},{binary:"001011",id:"风山渐",sign:"䷴",phase:"土",palace:"艮",palaceIndex:7,setupInfo:[{kin:"兄弟辰土"},{kin:"父母午火"},{kin:"子孙申金",hostGuest:"世"},{kin:"兄弟未土"},{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"应"}],yangCounts:[2,2,1,2,1,1]},{binary:"101011",id:"风火家人",sign:"䷤",phase:"木",palace:"巽",palaceIndex:2,setupInfo:[{kin:"兄弟卯木"},{kin:"妻财丑土",hostGuest:"世"},{kin:"父母亥水"},{kin:"妻财未土"},{kin:"子孙巳火",hostGuest:"应"},{kin:"兄弟卯木"}],yangCounts:[1,2,1,2,1,1]},{binary:"011011",id:"巽为风",sign:"䷸",phase:"木",palace:"巽",palaceIndex:0,setupInfo:[{kin:"妻财丑土"},{kin:"父母亥水"},{kin:"官鬼酉金",hostGuest:"应"},{kin:"妻财未土"},{kin:"子孙巳火"},{kin:"兄弟卯木",hostGuest:"世"}],yangCounts:[2,1,1,2,1,1]},{binary:"111011",id:"风天小畜",sign:"䷈",phase:"木",palace:"巽",palaceIndex:1,setupInfo:[{kin:"父母子水",hostGuest:"世"},{kin:"兄弟寅木"},{kin:"妻财辰土"},{kin:"妻财未土",hostGuest:"应"},{kin:"子孙巳火"},{kin:"兄弟卯木"}],yangCounts:[1,1,1,2,1,1]},{binary:"000111",id:"天地否",sign:"䷋",phase:"金",palace:"乾",palaceIndex:3,setupInfo:[{kin:"父母未土"},{kin:"官鬼巳火"},{kin:"妻财卯木",hostGuest:"世"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"父母戌土",hostGuest:"应"}],yangCounts:[2,2,2,1,1,1]},{binary:"100111",id:"天雷无妄",sign:"䷘",phase:"木",palace:"巽",palaceIndex:4,setupInfo:[{kin:"父母子水",hostGuest:"应"},{kin:"兄弟寅木"},{kin:"妻财辰土"},{kin:"子孙午火",hostGuest:"世"},{kin:"官鬼申金"},{kin:"妻财戌土"}],yangCounts:[1,2,2,1,1,1]},{binary:"010111",id:"天水讼",sign:"䷅",phase:"火",palace:"离",palaceIndex:6,setupInfo:[{kin:"父母寅木",hostGuest:"应"},{kin:"子孙辰土"},{kin:"兄弟午火"},{kin:"兄弟午火",hostGuest:"世"},{kin:"妻财申金"},{kin:"子孙戌土"}],yangCounts:[2,1,2,1,1,1]},{binary:"110111",id:"天泽履",sign:"䷉",phase:"土",palace:"艮",palaceIndex:5,setupInfo:[{kin:"父母巳火"},{kin:"官鬼卯木",hostGuest:"应"},{kin:"兄弟丑土"},{kin:"父母午火"},{kin:"子孙申金",hostGuest:"世"},{kin:"兄弟戌土"}],yangCounts:[1,1,2,1,1,1]},{binary:"001111",id:"天山遁",sign:"䷠",phase:"金",palace:"乾",palaceIndex:2,setupInfo:[{kin:"父母辰土"},{kin:"官鬼午火",hostGuest:"世"},{kin:"兄弟申金"},{kin:"官鬼午火"},{kin:"兄弟申金",hostGuest:"应"},{kin:"父母戌土"}],yangCounts:[2,2,1,1,1,1]},{binary:"101111",id:"天火同人",sign:"䷌",phase:"火",palace:"离",palaceIndex:7,setupInfo:[{kin:"父母寅木"},{kin:"子孙辰土"},{kin:"兄弟午火",hostGuest:"世"},{kin:"子孙未土"},{kin:"父母巳火"},{kin:"子孙戌土",hostGuest:"应"}],yangCounts:[1,2,1,1,1,1]},{binary:"011111",id:"天风姤",sign:"䷫",phase:"金",palace:"乾",palaceIndex:1,setupInfo:[{kin:"父母丑土",hostGuest:"世"},{kin:"子孙亥水"},{kin:"兄弟酉金"},{kin:"官鬼午火",hostGuest:"应"},{kin:"兄弟申金"},{kin:"父母戌土"}],yangCounts:[2,1,1,1,1,1]},{binary:"111111",id:"乾为天",sign:"䷀",phase:"金",palace:"乾",palaceIndex:0,setupInfo:[{kin:"子孙子水"},{kin:"妻财寅木"},{kin:"父母辰土",hostGuest:"应"},{kin:"官鬼午火"},{kin:"兄弟申金"},{kin:"父母戌土",hostGuest:"世"}],yangCounts:[1,1,1,1,1,1]}]),i=Object.freeze([{id:"坤",binary:"000",yangCount:0,represents:"地",nameEn:"kun",representsEn:"earth",sign:"☷"},{id:"震",binary:"100",yangCount:1,represents:"雷",nameEn:"zhen",representsEn:"thunder",sign:"☳"},{id:"坎",binary:"010",yangCount:1,represents:"水",nameEn:"kan",representsEn:"water",sign:"☵"},{id:"兑",binary:"110",yangCount:2,represents:"泽",nameEn:"dui",representsEn:"lake",sign:"☱"},{id:"艮",binary:"001",yangCount:1,represents:"山",nameEn:"gen",representsEn:"mountain",sign:"☶"},{id:"离",binary:"101",yangCount:2,represents:"火",nameEn:"li",representsEn:"fire",sign:"☲"},{id:"巽",binary:"011",yangCount:2,represents:"风",nameEn:"xun",representsEn:"wind",sign:"☴"},{id:"乾",binary:"111",yangCount:3,represents:"天",nameEn:"qian",representsEn:"heaven",sign:"☰"}]),s=["老阴","少阳","少阴","老阳"],e="交单拆重",t="×’”○",a=[1,1,2,2],o=[0,1,0,1];function u(n){if(0!==n&&1!==n&&2!==n&&3!==n)throw new Error("Count of yang must be 0, 1, 2 or 3")}class k{static getName(n){return s[n]}static fromSymbol(n){const i=t.indexOf(n);return-1!==i?new k(i):null}static fromSymbolName(n){const i=e.indexOf(n);return-1!==i?new k(i):null}static fromName(n){const i=s.indexOf(n);return-1!==i?new k(i):null}static fromDigitString(n){const i="0123".indexOf(n);return-1!==i?new k(i):null}static fromTrigramField(n){const s=i.find(i=>i.id===n||i.yangCount===n||i.binary===n||i.nameEn===n||i.represents===n||i.representsEn===n||i.sign===n);return s?new k(s.yangCount):null}_yangCount;get yangCount(){return this._yangCount}get polar(){return o[this.yangCount]}get isDynamic(){return 0===this.yangCount||3===this.yangCount}isChanged;get symbol(){return t[this.yangCount]}get symbolName(){return e[this.yangCount]}get name(){return s[this.yangCount]}constructor(n,i=!1){u(n),this._yangCount=n,this.isChanged=i}set(n){u(n),this._yangCount=n}clone(){return new k(this.yangCount,this.isChanged)}toChanged(){return this.isDynamic?new k(a[this.yangCount],!0):new k(this.yangCount,!1)}}const p=["初爻","二爻","三爻","四爻","五爻","上爻"];class h{static fromQuaternary(n){const i=n.split("").map(k.fromDigitString);return i.every(n=>null!==n)?new h(i):null}static fromSymbolName(n){const i=n.split("").map(k.fromSymbolName);return i.every(n=>null!==n)?new h(i):null}static fromYangCounts(n){try{return new h(n.map(n=>new k(n)))}catch{return null}}static fromId(i){const s=n.find(n=>n.id===i||n.id.slice(2)===i||n.id.startsWith(i)&&i.length>1);return s?h.fromYangCounts(s.yangCounts):null}static fromPalace(i){const s=n.find(n=>n.id[2]===i);return s?h.fromYangCounts(s.yangCounts):null}yaos;get info(){return n.find(n=>n.binary===this.yaos.map(n=>n.polar).join(""))}get isDynamic(){return this.yaos.some(n=>n.isDynamic||n.isChanged)}get isChanged(){return this.yaos.some(n=>n.isChanged)}get dynamicOuter(){return this.yaos.slice(3).some(n=>n.isDynamic||n.isChanged)}get dynamicInner(){return this.yaos.slice(0,3).some(n=>n.isDynamic||n.isChanged)}constructor(n){if(6!==n.length)throw new Error("Array length mismatch, A Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang");if(!n.every(n=>n instanceof k))throw new Error("Invalid Arguments, Hexagram must be constructed with exactly 6 Yaos or 6 counts of yang");this.yaos=n.map(n=>n.clone())}setYao(n,i){this.yaos[n].set(i)}toChanged(){if(!this.isDynamic)return null;if(this.isChanged)throw new Error("已经是变卦了,无法再变");return new h(this.yaos.map(n=>n.toChanged()))}toDescription(){const n=this.info.setupInfo.findIndex(n=>"世"===n.hostGuest),i=this.info.setupInfo.findIndex(n=>"应"===n.hostGuest),s=[`本卦${this.info.id}`,`世爻为${p[n]}`,`应爻为${p[i]}`],e=this.toChanged();if(e){s.push(`${this.yaos.map((n,i)=>n.isDynamic?`${p[i]}`:null).filter(n=>null!==n).join("、")}是动爻`),s.push(`变卦为${e.info.id}`);const n=e.info.setupInfo.findIndex(n=>"世"===n.hostGuest);this.yaos[n].isDynamic?s.push(`变卦世爻为${p[n]}`):s.push("未变出新的世爻");const i=e.info.setupInfo.findIndex(n=>"应"===n.hostGuest);this.yaos[i].isDynamic?s.push(`变卦应爻为${p[i]}`):s.push("未变出新的应爻")}else s.push("无动爻");return s.join(",")}toAIReadable(){const n=this.info.setupInfo,i=this.toChanged(),s=i?.info.setupInfo,e=[];if(s){const n=this.yaos.map((n,i)=>n.isDynamic?i:null).filter(n=>null!==n);s.forEach((s,t)=>{n.includes(t)&&("世"===s.hostGuest&&e.push(`新世爻为${i.info.id}的${p[t]}`),"应"===s.hostGuest&&e.push(`新应爻为${i.info.id}的${p[t]}`))})}else e.push("没有新的世应爻出现,世应不变");return{"本卦":{"上爻":{"爻":this.yaos[5].name,"类型":n[5].hostGuest||null,"六亲地支五行":n[5].kin},"五爻":{"爻":this.yaos[4].name,"类型":n[4].hostGuest||null,"六亲地支五行":n[4].kin},"四爻":{"爻":this.yaos[3].name,"类型":n[3].hostGuest||null,"六亲地支五行":n[3].kin},"三爻":{"爻":this.yaos[2].name,"类型":n[2].hostGuest||null,"六亲地支五行":n[2].kin},"二爻":{"爻":this.yaos[1].name,"类型":n[1].hostGuest||null,"六亲地支五行":n[1].kin},"初爻":{"爻":this.yaos[0].name,"类型":n[0].hostGuest||null,"六亲地支五行":n[0].kin},"卦名":this.info.id,"变爻":this.isDynamic?this.yaos.map((n,i)=>n.isDynamic?p[i]:null).filter(n=>null!==n):void 0},"变卦":s?{"上爻":{"爻":i.yaos[5].name,"类型":s[5].hostGuest||null,"六亲地支五行":s[5].kin},"五爻":{"爻":i.yaos[4].name,"类型":s[4].hostGuest||null,"六亲地支五行":s[4].kin},"四爻":{"爻":i.yaos[3].name,"类型":s[3].hostGuest||null,"六亲地支五行":s[3].kin},"三爻":{"爻":i.yaos[2].name,"类型":s[2].hostGuest||null,"六亲地支五行":s[2].kin},"二爻":{"爻":i.yaos[1].name,"类型":s[1].hostGuest||null,"六亲地支五行":s[1].kin},"初爻":{"爻":i.yaos[0].name,"类型":s[0].hostGuest||null,"六亲地支五行":s[0].kin},"卦名":i.info.id}:null,"世应变化":e.join(",")}}clone(){return new h(this.yaos)}toString(){return this.info.id}[Symbol.toPrimitive](){return this.info.id}}console.log(function(){const n=process.argv[2];if(!n)return null;const i=n.split("").map(k.fromTrigramField);return i.every(n=>null!==n)&&i.length>=6?new h(i):h.fromQuaternary(n)||h.fromId(n)||h.fromSymbolName(n)}()?.toAIReadable()||"无法识别输入的卦象");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "liuyao",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Kasukabe Tsumugi",
|
|
6
6
|
"email": "futami16237@gmail.com"
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"import": "./dist/index.mjs",
|
|
17
17
|
"default": "./dist/index.mjs"
|
|
18
18
|
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"skill": "rollup -c ./rollup.config.skill.mjs"
|
|
21
|
+
},
|
|
19
22
|
"files": [
|
|
20
23
|
"dist"
|
|
21
24
|
],
|