/**
* 易经卦象数据库
* 提供六十四卦的完整信息和查询功能
*/
class HexagramDatabase {
constructor() {
this.hexagrams = this.initializeHexagrams();
this.trigrams = this.initializeTrigrams();
}
/**
* 初始化八卦数据
*/
initializeTrigrams() {
return {
'乾': {
symbol: '☰',
binary: '111',
element: '天',
attribute: '刚健',
direction: '西北',
season: '秋冬之交',
family: '父',
nature: '阳',
meaning: '天、君、父、首、金、玉、冰、雹、大赤、良马、老马、瘠马、驳马'
},
'坤': {
symbol: '☷',
binary: '000',
element: '地',
attribute: '柔顺',
direction: '西南',
season: '夏秋之交',
family: '母',
nature: '阴',
meaning: '地、母、布、釜、吝啬、均、子母牛、大舆、文、众、柄'
},
'震': {
symbol: '☳',
binary: '001',
element: '雷',
attribute: '动',
direction: '东',
season: '春',
family: '长男',
nature: '阳',
meaning: '雷、龙、玄黄、旉、大涂、决躁、苍筤竹、萑苇'
},
'巽': {
symbol: '☴',
binary: '110',
element: '风',
attribute: '入',
direction: '东南',
season: '春夏之交',
family: '长女',
nature: '阴',
meaning: '风、木、长、高、进退、不果、臭、长女、绳直、工、白'
},
'坎': {
symbol: '☵',
binary: '010',
element: '水',
attribute: '陷',
direction: '北',
season: '冬',
family: '中男',
nature: '阳',
meaning: '水、沟渎、隐伏、矫輮、弓轮、中男、豕、月、盗、木'
},
'离': {
symbol: '☲',
binary: '101',
element: '火',
attribute: '丽',
direction: '南',
season: '夏',
family: '中女',
nature: '阴',
meaning: '火、日、电、中女、甲胄、戈兵、大腹、乾卦、鳖、蟹、蠃、蚌、龟'
},
'艮': {
symbol: '☶',
binary: '100',
element: '山',
attribute: '止',
direction: '东北',
season: '冬春之交',
family: '少男',
nature: '阳',
meaning: '山、径路、小石、门阙、果蓏、阍寺、指、狗、鼠、黔喙之属'
},
'兑': {
symbol: '☱',
binary: '011',
element: '泽',
attribute: '悦',
direction: '西',
season: '秋',
family: '少女',
nature: '阴',
meaning: '泽、少女、巫、口舌、毁折、附决、羊'
}
};
}
/**
* 初始化六十四卦数据
*/
initializeHexagrams() {
return {
1: {
name: '乾',
chinese: '乾为天',
upper: '乾',
lower: '乾',
symbol: '☰☰',
binary: '111111',
judgment: '乾:元,亨,利,贞。',
image: '天行健,君子以自强不息。',
meaning: '刚健中正,自强不息',
keywords: ['创造', '领导', '刚健', '进取'],
element: '金',
season: '秋',
direction: '西北',
lines: [
{ position: 1, text: '初九:潜龙,勿用。', meaning: '时机未到,韬光养晦' },
{ position: 2, text: '九二:见龙在田,利见大人。', meaning: '崭露头角,寻求指导' },
{ position: 3, text: '九三:君子终日乾乾,夕惕若,厉无咎。', meaning: '勤奋努力,保持警惕' },
{ position: 4, text: '九四:或跃在渊,无咎。', meaning: '审时度势,准备跃进' },
{ position: 5, text: '九五:飞龙在天,利见大人。', meaning: '功成名就,德高望重' },
{ position: 6, text: '上九:亢龙有悔。', meaning: '物极必反,谦逊为要' }
],
applications: {
career: '适合创业、领导工作,需要主动进取',
relationship: '主动追求,但要避免过于强势',
health: '精力充沛,注意不要过度劳累',
wealth: '财运旺盛,投资需谨慎',
study: '学习能力强,适合挑战性课程'
}
},
2: {
name: '坤',
chinese: '坤为地',
upper: '坤',
lower: '坤',
symbol: '☷☷',
binary: '000000',
judgment: '坤:元,亨,利牝马之贞。君子有攸往,先迷后得主,利西南得朋,东北丧朋。安贞,吉。',
image: '地势坤,君子以厚德载物。',
meaning: '柔顺承载,厚德载物',
keywords: ['包容', '承载', '柔顺', '配合'],
element: '土',
season: '夏秋之交',
direction: '西南',
lines: [
{ position: 1, text: '初六:履霜,坚冰至。', meaning: '见微知著,防患未然' },
{ position: 2, text: '六二:直,方,大,不习无不利。', meaning: '正直方正,自然无为' },
{ position: 3, text: '六三:含章可贞。或从王事,无成有终。', meaning: '含蓄内敛,坚持到底' },
{ position: 4, text: '六四:括囊;无咎,无誉。', meaning: '谨言慎行,明哲保身' },
{ position: 5, text: '六五:黄裳,元吉。', meaning: '中正谦逊,大吉大利' },
{ position: 6, text: '上六:龙战于野,其血玄黄。', meaning: '阴极阳生,变化在即' }
],
applications: {
career: '适合辅助、支持工作,需要耐心配合',
relationship: '温柔体贴,包容理解',
health: '注意脾胃,保持平和心态',
wealth: '稳健理财,积少成多',
study: '基础扎实,循序渐进'
}
},
3: {
name: '屯',
chinese: '水雷屯',
upper: '坎',
lower: '震',
symbol: '☵☳',
binary: '010001',
judgment: '屯:元,亨,利,贞。勿用,有攸往,利建侯。',
image: '云,雷,屯;君子以经纶。',
meaning: '万物始生,艰难创业',
keywords: ['开始', '困难', '创业', '积累'],
element: '水',
season: '春',
direction: '东北',
lines: [
{ position: 1, text: '初九:磐桓;利居贞,利建侯。', meaning: '稳扎稳打,建立基础' },
{ position: 2, text: '六二:屯如邅如,乘马班如。匪寇婚媾,女子贞不字,十年乃字。', meaning: '困难重重,坚持等待' },
{ position: 3, text: '六三:既鹿无虞,惟入于林中,君子几不如舍,往吝。', meaning: '盲目行动,不如放弃' },
{ position: 4, text: '六四:乘马班如,求婚媾,无不利。', meaning: '寻求合作,前景光明' },
{ position: 5, text: '九五:屯其膏,小贞吉,大贞凶。', meaning: '积蓄实力,小事可为' },
{ position: 6, text: '上六:乘马班如,泣血涟如。', meaning: '进退两难,痛苦不堪' }
],
applications: {
career: '创业初期,需要坚持和耐心',
relationship: '感情萌芽,需要时间培养',
health: '注意调养,避免过度劳累',
wealth: '积累阶段,不宜大额投资',
study: '打好基础,循序渐进'
}
},
4: {
name: '蒙',
chinese: '山水蒙',
upper: '艮',
lower: '坎',
symbol: '☶☵',
binary: '100010',
judgment: '蒙:亨。匪我求童蒙,童蒙求我。初噬告,再三渎,渎则不告。利贞。',
image: '山下出泉,蒙;君子以果行育德。',
meaning: '启蒙教育,循序渐进',
keywords: ['启蒙', '教育', '学习', '成长'],
element: '土',
season: '冬春之交',
direction: '东北',
lines: [
{ position: 1, text: '初六:发蒙,利用刑人,用说桎梏,以往吝。', meaning: '启发蒙昧,需要约束' },
{ position: 2, text: '九二:包蒙吉,纳妇吉,子克家。', meaning: '包容教导,获得成功' },
{ position: 3, text: '六三:勿用娶女,见金夫,不有躬,无攸利。', meaning: '不要急于求成' },
{ position: 4, text: '六四:困蒙,吝。', meaning: '困于蒙昧,需要努力' },
{ position: 5, text: '六五:童蒙,吉。', meaning: '保持童心,虚心学习' },
{ position: 6, text: '上九:击蒙,不利为寇,利御寇。', meaning: '严格教育,防范错误' }
],
applications: {
career: '适合教育、培训工作,需要耐心指导',
relationship: '需要相互理解,慢慢培养感情',
health: '注意心理健康,保持学习心态',
wealth: '财运一般,不宜冒险投资',
study: '学习态度很重要,需要好老师'
}
},
5: {
name: '需',
chinese: '水天需',
upper: '坎',
lower: '乾',
symbol: '☵☰',
binary: '010111',
judgment: '需:有孚,光亨,贞吉。利涉大川。',
image: '云上于天,需;君子以饮食宴乐。',
meaning: '等待时机,积蓄力量',
keywords: ['等待', '需求', '准备', '时机'],
element: '水',
season: '冬',
direction: '北',
lines: [
{ position: 1, text: '初九:需于郊,利用恒,无咎。', meaning: '在远处等待,保持恒心' },
{ position: 2, text: '九二:需于沙,小有言,终吉。', meaning: '稍有困难,最终吉利' },
{ position: 3, text: '九三:需于泥,致寇至。', meaning: '陷入困境,招致麻烦' },
{ position: 4, text: '六四:需于血,出自穴。', meaning: '危险境地,需要脱离' },
{ position: 5, text: '九五:需于酒食,贞吉。', meaning: '安心等待,保持正道' },
{ position: 6, text: '上六:入于穴,有不速之客三人来,敬之终吉。', meaning: '意外来客,以礼相待' }
],
applications: {
career: '需要等待机会,不宜急进',
relationship: '需要时间培养,不要急躁',
health: '需要调养,注意饮食',
wealth: '财运需要等待,稳健为主',
study: '需要积累,循序渐进'
}
},
6: {
name: '讼',
chinese: '天水讼',
upper: '乾',
lower: '坎',
symbol: '☰☵',
binary: '111010',
judgment: '讼:有孚,窒惕,中吉,终凶。利见大人,不利涉大川。',
image: '天与水违行,讼;君子以作事谋始。',
meaning: '争讼纠纷,谨慎处理',
keywords: ['争讼', '纠纷', '谨慎', '调解'],
element: '金',
season: '秋',
direction: '西北',
lines: [
{ position: 1, text: '初六:不永所事,小有言,终吉。', meaning: '不要纠缠,小有争议但终吉' },
{ position: 2, text: '九二:不克讼,归而逋,其邑人三百户,无眚。', meaning: '不能胜诉,退避为上' },
{ position: 3, text: '六三:食旧德,贞厉,终吉,或从王事,无成。', meaning: '依靠旧德,坚持正道' },
{ position: 4, text: '九四:不克讼,复即命渝,安贞吉。', meaning: '不能胜诉,改变态度为吉' },
{ position: 5, text: '九五:讼元吉。', meaning: '争讼大吉' },
{ position: 6, text: '上九:或锡之鞶带,终朝三褫之。', meaning: '即使获胜,也不长久' }
],
applications: {
career: '避免争斗,寻求和解',
relationship: '化解矛盾,避免冲突',
health: '注意情绪,避免争吵伤身',
wealth: '避免投机,谨慎理财',
study: '专心学习,避免分心'
}
},
7: {
name: '师',
chinese: '地水师',
upper: '坤',
lower: '坎',
symbol: '☷☵',
binary: '000010',
judgment: '师:贞,丈人吉,无咎。',
image: '地中有水,师;君子以容民畜众。',
meaning: '统帅军队,领导众人',
keywords: ['领导', '统帅', '团队', '纪律'],
element: '土',
season: '夏秋之交',
direction: '西南',
lines: [
{ position: 1, text: '初六:师出以律,否臧凶。', meaning: '军队出征要有纪律' },
{ position: 2, text: '九二:在师中,吉无咎,王三锡命。', meaning: '在军中得到重用' },
{ position: 3, text: '六三:师或舆尸,凶。', meaning: '指挥不当,必有损失' },
{ position: 4, text: '六四:师左次,无咎。', meaning: '军队撤退,无过错' },
{ position: 5, text: '六五:田有禽,利执言,无咎。长子帅师,弟子舆尸,贞凶。', meaning: '选择合适的统帅' },
{ position: 6, text: '上六:大君有命,开国承家,小人勿用。', meaning: '论功行赏,不用小人' }
],
applications: {
career: '适合管理工作,需要领导能力',
relationship: '需要包容理解,团结一致',
health: '注意劳逸结合,避免过度疲劳',
wealth: '团队合作,共同发展',
study: '需要纪律性,系统学习'
}
},
8: {
name: '比',
chinese: '水地比',
upper: '坎',
lower: '坤',
symbol: '☵☷',
binary: '010000',
judgment: '比:吉。原筮元永贞,无咎。不宁方来,后夫凶。',
image: '地上有水,比;先王以建万国,亲诸侯。',
meaning: '亲密合作,相互依附',
keywords: ['合作', '亲密', '依附', '团结'],
element: '水',
season: '冬',
direction: '北',
lines: [
{ position: 1, text: '初六:有孚比之,无咎。有孚盈缶,终来有他,吉。', meaning: '真诚合作,必有好结果' },
{ position: 2, text: '六二:比之自内,贞吉。', meaning: '从内部团结,坚持正道' },
{ position: 3, text: '六三:比之匪人。', meaning: '与不当的人合作' },
{ position: 4, text: '六四:外比之,贞吉。', meaning: '对外合作,坚持正道' },
{ position: 5, text: '九五:显比,王用三驱,失前禽。邑人不诫,吉。', meaning: '明显的合作,宽容待人' },
{ position: 6, text: '上六:比之无首,凶。', meaning: '合作无首领,必然失败' }
],
applications: {
career: '团队合作,建立良好关系',
relationship: '亲密无间,相互支持',
health: '需要他人关心,互相照顾',
wealth: '合作投资,共同发展',
study: '团体学习,相互帮助'
}
}
};
}
/**
* 初始化六十四卦数据(完整版本)
*/
initializeFullHexagrams() {
return {
1: {
name: '乾',
chinese: '乾为天',
upper: '乾',
lower: '乾',
symbol: '☰☰',
binary: '111111',
judgment: '乾:元,亨,利,贞。',
image: '天行健,君子以自强不息。',
meaning: '刚健中正,自强不息',
keywords: ['创造', '领导', '刚健', '进取'],
element: '金',
season: '秋',
direction: '西北',
lines: [
{ position: 1, text: '初九:潜龙,勿用。', meaning: '时机未到,韬光养晦' },
{ position: 2, text: '九二:见龙在田,利见大人。', meaning: '崭露头角,寻求指导' },
{ position: 3, text: '九三:君子终日乾乾,夕惕若,厉无咎。', meaning: '勤奋努力,保持警惕' },
{ position: 4, text: '九四:或跃在渊,无咎。', meaning: '审时度势,准备跃进' },
{ position: 5, text: '九五:飞龙在天,利见大人。', meaning: '功成名就,德高望重' },
{ position: 6, text: '上九:亢龙有悔。', meaning: '物极必反,谦逊为要' }
],
applications: {
career: '适合创业、领导工作,需要主动进取',
relationship: '主动追求,但要避免过于强势',
health: '精力充沛,注意不要过度劳累',
wealth: '财运旺盛,投资需谨慎',
study: '学习能力强,适合挑战性课程'
}
},
2: {
name: '坤',
chinese: '坤为地',
upper: '坤',
lower: '坤',
symbol: '☷☷',
binary: '000000',
judgment: '坤:元亨,利牝马之贞。君子有攸往,先迷后得主,利西南得朋,东北丧朋。安贞吉。',
image: '地势坤,君子以厚德载物。',
meaning: '柔顺承载,厚德载物',
keywords: ['包容', '承载', '柔顺', '配合'],
element: '土',
season: '夏秋之交',
direction: '西南',
lines: [
{ position: 1, text: '初六:履霜,坚冰至。', meaning: '见微知著,防患未然' },
{ position: 2, text: '六二:直,方,大,不习无不利。', meaning: '正直方正,自然而成' },
{ position: 3, text: '六三:含章可贞。或从王事,无成有终。', meaning: '含蓄内敛,辅佐他人' },
{ position: 4, text: '六四:括囊;无咎,无誉。', meaning: '谨言慎行,明哲保身' },
{ position: 5, text: '六五:黄裳,元吉。', meaning: '德行高尚,获得认可' },
{ position: 6, text: '上六:龙战于野,其血玄黄。', meaning: '阴极阳生,变化在即' }
],
applications: {
career: '适合辅助、服务性工作,需要耐心配合',
relationship: '温柔体贴,善于包容理解',
health: '体质较弱,需要调养身体',
wealth: '财运平稳,适合稳健投资',
study: '基础扎实,循序渐进'
}
},
3: {
name: '屯',
chinese: '水雷屯',
upper: '坎',
lower: '震',
symbol: '☵☳',
binary: '010001',
judgment: '屯:元亨利贞,勿用,有攸往,利建侯。',
image: '云雷,屯;君子以经纶。',
meaning: '初始困难,需要积累',
keywords: ['开始', '困难', '积累', '建立'],
element: '水',
season: '冬春之交',
direction: '北',
lines: [
{ position: 1, text: '初九:磐桓;利居贞,利建侯。', meaning: '稳扎稳打,建立基础' },
{ position: 2, text: '六二:屯如邅如,乘马班如。匪寇婚媾,女子贞不字,十年乃字。', meaning: '困难重重,坚持等待' },
{ position: 3, text: '六三:即鹿无虞,惟入于林中,君子几不如舍,往吝。', meaning: '盲目行动,不如放弃' },
{ position: 4, text: '六四:乘马班如,求婚媾,往吉,无不利。', meaning: '寻求合作,前进有利' },
{ position: 5, text: '九五:屯其膏,小贞吉,大贞凶。', meaning: '小心谨慎,不宜大动' },
{ position: 6, text: '上六:乘马班如,泣血涟如。', meaning: '进退两难,痛苦不堪' }
],
applications: {
career: '创业初期,需要坚持和耐心',
relationship: '感情初期,需要时间培养',
health: '身体不适,需要调理',
wealth: '财运不佳,不宜投资',
study: '学习困难,需要基础积累'
}
}
// 这里只展示前3卦作为示例,实际应包含全部64卦
};
}
/**
* 根据卦名获取卦象信息
* @param {string} name - 卦名
* @returns {Object|null} 卦象信息
*/
getHexagramByName(name) {
for (const [key, hexagram] of Object.entries(this.hexagrams)) {
if (hexagram.name === name || hexagram.chinese === name) {
return { id: parseInt(key), ...hexagram };
}
}
return null;
}
/**
* 根据卦序号获取卦象信息
* @param {number} id - 卦序号
* @returns {Object|null} 卦象信息
*/
getHexagramById(id) {
const hexagram = this.hexagrams[id];
return hexagram ? { id, ...hexagram } : null;
}
/**
* 根据卦序号获取卦象信息(别名方法)
* @param {number} id - 卦序号
* @returns {Object|null} 卦象信息
*/
getHexagram(id) {
return this.getHexagramById(id);
}
/**
* 根据上下卦获取卦象
* @param {string} upper - 上卦
* @param {string} lower - 下卦
* @returns {Object|null} 卦象信息
*/
getHexagramByTrigrams(upper, lower) {
for (const [key, hexagram] of Object.entries(this.hexagrams)) {
if (hexagram.upper === upper && hexagram.lower === lower) {
return { id: parseInt(key), ...hexagram };
}
}
return null;
}
/**
* 根据二进制编码获取卦象
* @param {string} binary - 二进制编码
* @returns {Object|null} 卦象信息
*/
getHexagramByBinary(binary) {
for (const [key, hexagram] of Object.entries(this.hexagrams)) {
if (hexagram.binary === binary) {
return { id: parseInt(key), ...hexagram };
}
}
return null;
}
/**
* 获取八卦信息
* @param {string} name - 八卦名
* @returns {Object|null} 八卦信息
*/
getTrigramByName(name) {
return this.trigrams[name] || null;
}
/**
* 根据关键词搜索卦象
* @param {string} keyword - 关键词
* @returns {Array} 匹配的卦象列表
*/
searchHexagrams(keyword) {
const results = [];
const lowerKeyword = keyword.toLowerCase();
for (const [key, hexagram] of Object.entries(this.hexagrams)) {
const searchText = [
hexagram.name,
hexagram.chinese,
hexagram.meaning,
...hexagram.keywords,
hexagram.judgment,
hexagram.image
].join(' ').toLowerCase();
if (searchText.includes(lowerKeyword)) {
results.push({ id: parseInt(key), ...hexagram });
}
}
return results;
}
/**
* 根据应用场景获取相关卦象
* @param {string} scenario - 应用场景
* @returns {Array} 相关卦象列表
*/
getHexagramsByScenario(scenario) {
const results = [];
for (const [key, hexagram] of Object.entries(this.hexagrams)) {
if (hexagram.applications && hexagram.applications[scenario]) {
results.push({
id: parseInt(key),
name: hexagram.name,
chinese: hexagram.chinese,
meaning: hexagram.meaning,
application: hexagram.applications[scenario]
});
}
}
return results;
}
/**
* 获取所有卦象列表
* @returns {Array} 所有卦象
*/
getAllHexagrams() {
return Object.entries(this.hexagrams).map(([key, hexagram]) => ({
id: parseInt(key),
name: hexagram.name,
chinese: hexagram.chinese,
symbol: hexagram.symbol,
meaning: hexagram.meaning,
keywords: hexagram.keywords
}));
}
/**
* 获取所有八卦列表
* @returns {Array} 所有八卦
*/
getAllTrigrams() {
return Object.entries(this.trigrams).map(([name, trigram]) => ({
name,
...trigram
}));
}
/**
* 根据五行获取相关卦象
* @param {string} element - 五行
* @returns {Array} 相关卦象列表
*/
getHexagramsByElement(element) {
const results = [];
for (const [key, hexagram] of Object.entries(this.hexagrams)) {
if (hexagram.element === element) {
results.push({ id: parseInt(key), ...hexagram });
}
}
return results;
}
/**
* 根据季节获取相关卦象
* @param {string} season - 季节
* @returns {Array} 相关卦象列表
*/
getHexagramsBySeason(season) {
const results = [];
for (const [key, hexagram] of Object.entries(this.hexagrams)) {
if (hexagram.season === season) {
results.push({ id: parseInt(key), ...hexagram });
}
}
return results;
}
/**
* 获取变卦
* @param {number} originalId - 原卦ID
* @param {Array} changingLines - 变爻位置
* @returns {Object} 变卦信息
*/
getChangedHexagram(originalId, changingLines) {
const original = this.getHexagramById(originalId);
if (!original) return null;
// 将二进制字符串转换为数组
const binaryArray = original.binary.split('').map(bit => parseInt(bit));
// 应用变爻
changingLines.forEach(line => {
if (line >= 1 && line <= 6) {
const index = 6 - line; // 从下往上数,第1爻对应数组最后一位
binaryArray[index] = 1 - binaryArray[index]; // 0变1,1变0
}
});
// 转换回二进制字符串
const newBinary = binaryArray.join('');
// 查找对应的卦象
return this.getHexagramByBinary(newBinary);
}
/**
* 分析卦象组合
* @param {number} hexagramId - 卦象ID
* @returns {Object} 卦象分析
*/
analyzeHexagram(hexagramId) {
const hexagram = this.getHexagramById(hexagramId);
if (!hexagram) return null;
const upperTrigram = this.getTrigramByName(hexagram.upper);
const lowerTrigram = this.getTrigramByName(hexagram.lower);
return {
hexagram: hexagram,
upper_trigram: {
name: hexagram.upper,
...upperTrigram
},
lower_trigram: {
name: hexagram.lower,
...lowerTrigram
},
combination_meaning: this.getCombinationMeaning(hexagram.upper, hexagram.lower),
five_elements_analysis: this.analyzeFiveElements(upperTrigram, lowerTrigram),
seasonal_influence: this.analyzeSeasonalInfluence(hexagram),
directional_meaning: this.analyzeDirectionalMeaning(upperTrigram, lowerTrigram)
};
}
/**
* 获取卦象组合含义
* @param {string} upper - 上卦
* @param {string} lower - 下卦
* @returns {string} 组合含义
*/
getCombinationMeaning(upper, lower) {
const combinations = {
'乾乾': '天行健,刚健不息',
'坤坤': '地势坤,厚德载物',
'坎震': '云雷屯,经纶世务',
// 可以继续添加更多组合
};
return combinations[upper + lower] || `${upper}上${lower}下的组合`;
}
/**
* 分析五行关系
* @param {Object} upperTrigram - 上卦
* @param {Object} lowerTrigram - 下卦
* @returns {Object} 五行分析
*/
analyzeFiveElements(upperTrigram, lowerTrigram) {
const elementMap = {
'天': '金', '地': '土', '雷': '木', '风': '木',
'水': '水', '火': '火', '山': '土', '泽': '金'
};
const upperElement = elementMap[upperTrigram.element];
const lowerElement = elementMap[lowerTrigram.element];
return {
upper_element: upperElement,
lower_element: lowerElement,
relationship: this.getFiveElementsRelationship(upperElement, lowerElement),
harmony_level: this.assessElementHarmony(upperElement, lowerElement)
};
}
/**
* 获取五行关系
* @param {string} element1 - 五行1
* @param {string} element2 - 五行2
* @returns {string} 五行关系
*/
getFiveElementsRelationship(element1, element2) {
const relationships = {
'木火': '相生', '火土': '相生', '土金': '相生', '金水': '相生', '水木': '相生',
'木土': '相克', '土水': '相克', '水火': '相克', '火金': '相克', '金木': '相克'
};
return relationships[element1 + element2] || relationships[element2 + element1] || '比和';
}
/**
* 评估五行和谐度
* @param {string} element1 - 五行1
* @param {string} element2 - 五行2
* @returns {string} 和谐度
*/
assessElementHarmony(element1, element2) {
const relationship = this.getFiveElementsRelationship(element1, element2);
switch (relationship) {
case '相生': return '和谐';
case '相克': return '冲突';
case '比和': return '平衡';
default: return '中性';
}
}
/**
* 分析季节影响
* @param {Object} hexagram - 卦象
* @returns {Object} 季节分析
*/
analyzeSeasonalInfluence(hexagram) {
return {
primary_season: hexagram.season,
seasonal_energy: this.getSeasonalEnergy(hexagram.season),
timing_advice: this.getTimingAdvice(hexagram.season),
seasonal_applications: this.getSeasonalApplications(hexagram.season)
};
}
/**
* 获取季节能量
* @param {string} season - 季节
* @returns {string} 季节能量
*/
getSeasonalEnergy(season) {
const energies = {
'春': '生发之气,万物复苏',
'夏': '旺盛之气,繁荣昌盛',
'秋': '收敛之气,成熟收获',
'冬': '潜藏之气,蓄势待发',
'春夏之交': '生长转旺,积极向上',
'夏秋之交': '由盛转收,稳健发展',
'秋冬之交': '收藏转潜,内敛修养',
'冬春之交': '潜藏转生,蓄势待发'
};
return energies[season] || '四季平衡';
}
/**
* 获取时机建议
* @param {string} season - 季节
* @returns {string} 时机建议
*/
getTimingAdvice(season) {
const advice = {
'春': '适合开始新项目,播种希望',
'夏': '适合全力发展,展现才华',
'秋': '适合收获成果,总结经验',
'冬': '适合休养生息,积蓄力量'
};
return advice[season] || '顺应自然,把握时机';
}
/**
* 获取季节应用
* @param {string} season - 季节
* @returns {Array} 季节应用
*/
getSeasonalApplications(season) {
const applications = {
'春': ['创业', '学习', '恋爱', '种植'],
'夏': ['发展', '表现', '社交', '旅行'],
'秋': ['收获', '总结', '投资', '储蓄'],
'冬': ['休息', '思考', '修养', '计划']
};
return applications[season] || ['平衡发展'];
}
/**
* 分析方位含义
* @param {Object} upperTrigram - 上卦
* @param {Object} lowerTrigram - 下卦
* @returns {Object} 方位分析
*/
analyzeDirectionalMeaning(upperTrigram, lowerTrigram) {
return {
upper_direction: upperTrigram.direction,
lower_direction: lowerTrigram.direction,
combined_direction: this.getCombinedDirection(upperTrigram.direction, lowerTrigram.direction),
feng_shui_implications: this.getFengShuiImplications(upperTrigram.direction, lowerTrigram.direction)
};
}
/**
* 获取组合方位
* @param {string} upperDir - 上卦方位
* @param {string} lowerDir - 下卦方位
* @returns {string} 组合方位
*/
getCombinedDirection(upperDir, lowerDir) {
return `${upperDir}与${lowerDir}的结合`;
}
/**
* 获取风水含义
* @param {string} upperDir - 上卦方位
* @param {string} lowerDir - 下卦方位
* @returns {string} 风水含义
*/
getFengShuiImplications(upperDir, lowerDir) {
return `${upperDir}主导,${lowerDir}辅助的能量场`;
}
}
module.exports = HexagramDatabase;