//写着玩的^_^
//写的过程中发现原来八卦跟二进制其实有很大关系,难怪有人说计算机是受周易启示而发明的^_^
#include<windows.h>
#include<stdio.h>
#include<math.h>
#include<time.h>
int Get_Eight_Diagrams(int first, int second, int third)
{
return first + 2 * second + 4 * third;//从爻象求八卦
}
void main()
{
int flag;
int result[6];
char number[][3] = {"一", "二", "三", "四", "五", "六"};
char yinyang[][3] = {"阴", "阳"};
char Eight_Diagrams[][3] =
{"坤", "艮", "坎", "巽", "震", "离", "兑", "乾"};
srand((unsigned)time(NULL)); //设随机数
printf("本卦:\t");
for(int i = 0; i < 6; i++)
{
result[i] = rand() % 2;
printf("%s ", yinyang[result[i]]);
}//随机求出六爻
printf(" %s为上, %s为下", Eight_Diagrams[Get_Eight_Diagrams(result[0], result[1], result[2])],
Eight_Diagrams[Get_Eight_Diagrams(result[3], result[4], result[5])]);
printf("\n\n");
printf("变爻:\t第%s爻\n\n", number[flag = rand() % 6]);
//本卦求完
printf("互卦:\t");
printf("%s %s %s %s %s %s ",
yinyang[result[1]], yinyang[result[2]], yinyang[result[3]],
yinyang[result[2]], yinyang[result[3]], yinyang[result[4]]);
printf(" %s为上, %s为下\n\n", Eight_Diagrams[Get_Eight_Diagrams(result[1], result[2], result[3])],
Eight_Diagrams[Get_Eight_Diagrams(result[2], result[3], result[4])]);
//互卦
result[flag] = !result[flag];
printf("变卦:\t");
printf("%s %s %s %s %s %s ",
yinyang[result[0]], yinyang[result[1]], yinyang[result[2]],
yinyang[result[3]], yinyang[result[4]], yinyang[result[5]]);
printf(" %s为上, %s为下\n\n", Eight_Diagrams[Get_Eight_Diagrams(result[0], result[1], result[2])],
Eight_Diagrams[Get_Eight_Diagrams(result[3], result[4], result[5])]);
//变卦
}
//先写着这个简易版,以后有机会再更新