Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

申请更多神煞 #22

Open
likeSo opened this issue Dec 5, 2023 · 3 comments
Open

申请更多神煞 #22

likeSo opened this issue Dec 5, 2023 · 3 comments

Comments

@likeSo
Copy link

likeSo commented Dec 5, 2023

作者您好,感谢开发出了如此优秀的框架!我在尝试自己开发一个六爻排盘软件,目前使用该框架实现四值显示,查询旬空等功能;
现在想请问下,可否加入更多六爻经常使用的神煞?比如驿马,贵人,谋星,桃花,文昌等?

@likeSo
Copy link
Author

likeSo commented Dec 5, 2023

补充一下神煞的信息

  • 贵人:逢甲 与戊日贵人星在丑与未;逢乙与己日贵人星在子与申;逢丙与丁日贵人星在亥与酉;
    • 歌曰:“甲戊并牛羊,乙己鼠猴乡,丙丁猪鸡位;壬癸兔蛇藏,庚辛逢马虎,此是贵人方。”
  • 禄神:逢甲日禄在寅,逢乙日禄在卯,逢丙日与戊日禄在巳,逢丁 日与己日禄在午,逢庚日禄在申,逢辛日禄在酉,逢壬日禄在亥,逢癸日禄在子。
  • 羊刃:逢甲日刃在卯,逢乙日刃在寅,逢丙日与戊日刃在午, 逢丁日与己日刃在巳,逢庚日刃在酉,逢辛日刃在申,逢壬日刃在子,逢癸日刃在亥。
  • 文昌:逢甲日文昌在巳,逢乙日文昌在午,逢丙日与戊日文昌在申, 逢丁日与己日文昌在酉,逢庚日文昌在亥,逢辛日文昌在子,逢壬日文昌在寅,逢癸 日文昌在卯。
  • 驿马:逢申子辰日马星在寅,逢巳酉丑日马星在亥,逢寅午戌日马星在申,逢亥卯 未日马星在巳。
  • 桃花:逢申子辰日桃花在酉,逢巳酉丑日桃花在午,逢 寅午戌日桃花在卯,逢亥卯未日桃花在子。
  • 将星:逢申子辰日将星在子,逢巳酉丑日将星在酉,逢寅午戌日将星在午,逢亥 卯未日将星在卯。
  • 劫煞:逢申子辰日华盖在辰,逢巳酉丑日华盖在丑,逢寅午戌日华盖在戌, 逢亥卯未日华盖在未。
  • 谋星:逢申子辰日谋星在戌,逢巳酉丑日谋星在未,逢寅午戌日谋星在辰, 逢亥卯未日谋星在丑。
  • 天医:月支往前推一位,就是天医星。
  • 灾煞:逢申子辰日灾煞在午,逢巳酉丑日灾煞在卯,逢寅 午戌日灾煞在子,逢亥卯未日灾煞在酉。
  • 华盖:华盖与谋星相冲;
  • 天耳、天目:春天耳已目从亥、夏天耳寅目居申、秋天耳亥目从已、冬天耳申目居寅。
  • 床帐:等我查查
  • 香闺:
  • 天马:
  • 皇恩:

@waterbeside
Copy link
Owner

作者您好,感谢开发出了如此优秀的框架!我在尝试自己开发一个六爻排盘软件,目前使用该框架实现四值显示,查询旬空等功能; 现在想请问下,可否加入更多六爻经常使用的神煞?比如驿马,贵人,谋星,桃花,文昌等?

您好,十分感谢你的支持。
由于不同的术数系统,神煞的立成方法可能有少许不同,八字和《协纪辨方书》虽都有相同的神煞,但我还是分开了两个不同的插件编写。
六爻的神煞似乎是通过六爻的纳甲地支见起卦日的干所立成的? 所以不能直接在原有的神煞系统上添加神煞,六爻系统我不太熟悉,也暂时未有计划编写其相关插件。
关于查神煞,你可以自行编写一个神煞列表,然后遍历各爻干支,从神煞列表中筛选出神煞,神煞列表可参考:

const xx6Gods = [
  {
    name: '貴人',
    /**
     * 用于匹配神煞的函数
     * @param lsr lunisolar实例
     * @param matchBranch 要匹配的地支索引值(从0数起)
     */
    test: (lsr: lunisolar.Lunisolar, matchBranch: number): boolean => {
      const s = lsr.char8.day.stem.value // 取日天干
      // rule[天干][地支, 地支]
      const rule = [
        [1, 7],
        [0, 8],
        [11, 9],
        [11, 9],
        [1, 7],
        [0, 8],
        [1, 7],
        [2, 6],
        [3, 5]
      ]
      return rule[s].includes(matchBranch)
    }
  },
  {
    name: '祿神',
    test: (lsr: lunisolar.Lunisolar, matchBranch: number): boolean => {
      return [2, 3, 5, 6, 5, 6, 8, 9, 11, 0][lsr.char8.day.stem.value] === matchBranch
    }
  },
  {
    name: '羊刃',
    test: (lsr: lunisolar.Lunisolar, matchBranch: number): boolean => {
      return [3, 4, 6, 7, 6, 7, 9, 10, 0, 1][lsr.char8.day.stem.value] === matchBranch
    }
  },
  {
    name: '天耳',
    test: (lsr: lunisolar.Lunisolar, matchBranch: number): boolean => {
      const sn = lsr.getSeasonIndex() // 取得季节索引
      return [5, 2, 11, 8][sn] === matchBranch
    }
  },
  {
    name: '天目',
    test: (lsr: lunisolar.Lunisolar, matchBranch: number): boolean => {
      const sn = lsr.getSeasonIndex() // 取得季节索引
      return [11, 8, 5, 2][sn] === matchBranch
    }
  }
  // 其它神煞类似编写...
]

@likeSo
Copy link
Author

likeSo commented Dec 13, 2023

我现在自己写了一个比较简陋的,大概类似于:

switch (lsr.char8.day.branch.name) {
    case '申':
    case '子':
    case '辰':
        return '寅'
}

因为神煞基本上是固定的,比如说驿马星就是根据日支来推断,然后这些神煞,有些是根据日干,有些是日支,还有一些是根据月份
刚好这个框架囊括了所有四值信息,所以我认为跟这个框架很般配~😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants