#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;
}
沒有留言:
張貼留言