2024年8月29日 星期四

簡單 c 程式碼, 根據五行八卦相生相剋推斷吉凶

#include "stdio.h"
// 五行:
//               木2
//      水1           火3
//         金0     土4
//
// 先天八卦 vs 五行
//                         乾1->金0
//                兌2->金0          巽5->木2
//      離3->火3                              坎6->水1
//                震4->木2          艮7->土4
//                         坤8->土4
// const char *element5[5]   = {"金", "水", "木", "火", "土"};
const int  gossip8Mod5[9]  = {0, 0, 0, 3, 2, 2, 1, 4, 4};//(乾1,兌2)->金0, 離3->火3, (震4,巽5)->木2, 坎6->水1, (艮7,坤8)->土4
bool judgeResult(int change = 1, int same = 1) { // 用(變卦稱之用), 體(卦不變為體)
  int used = gossip8Mod5[change];// 轉五行 0 ~ 4 : "金", "水", "木", "火", "土"
  int body = gossip8Mod5[same];// 轉五行 0 ~ 4 : "金", "水", "木", "火", "土"
  if ((used + 4) % 5 == body || (used + 2) % 5 == body) return false;// 體 反生 用, 用 反剋 體 -> 凶
  return true; // 用 生 體, 體 剋 用, 用體 比 -> 吉  
}
int main() {
  int good = 0;
  for(int same = 1; same <= 8; same ++) { // 體 8 卦
    for(int change = 1; change <= 8; change ++) {   // 用 8 卦
      if (judgeResult(change, same)) {
        good ++;
        printf("吉 ");
      } else {
        printf("凶 ");
      }
    }
    printf("\n");
  }
  printf("吉/凶 = %d/%d\n", good, 64 - good);
  return 0;
}

沒有留言:

張貼留言

簡單 c 程式碼, 根據五行八卦相生相剋推斷吉凶

#include "stdio.h" // 五行: //               木2 //      水1           火3 //         金0     土4 // // 先天八卦 vs 五行 //                    ...