代码
#include<iostream>
using namespace std;
#include<vector>
#include<cstdlib>
#include<ctime>
#include<Windows.h>
int huaYiXiangLiang(int all, int& left)
{
Sleep(3000);
srand(time(0));
left = rand() % all + 1;
while (true) {
if (left >= all-1 || left <= 1)
{
left = rand() % all + 1;
}
else break;
}
return all - left;
}
int main()
{
vector<int> liuYao;
for (int yao = 1; yao <= 6; ++yao) {
vector<int> gua;
int daYanZhiShu = 55;
int qiYong = 55 - 6;
for (int step = 1; step <= 3; ++step) {
#if 1 分而为二以象两
int left = 0;
int right = huaYiXiangLiang(qiYong, left);
cout << "left: " << left << ", right: " << right << endl;
#endif
int tmpRight = right;
#if 1 挂一以象三
tmpRight -= 1;
gua.push_back(1);
cout << "tmpRight: " << tmpRight << endl;
#endif
#if 1 揲之以四以象四时
while (tmpRight > 4)
{
tmpRight -= 4;
}
cout << "tmpRight: " << tmpRight << endl;
#endif
#if 1 归奇于扐以象闰
if (tmpRight == 4) {
left -= 4;
tmpRight -= 4;
gua.push_back(8);
}
else if (tmpRight < 4)
{
left -= (4 - tmpRight);
tmpRight = 0;
gua.push_back(4);
}
cout << "left: " << left << endl;
#endif
for (int i = 0; i < gua.size(); ++i)
{
qiYong -= gua[i];
}
gua.clear();
std::cout << "new qiYong: " << qiYong << endl;
if (step != 3) {
// 放回1
qiYong += 1;
}
}
liuYao.push_back( qiYong / 4 );
cout << yao << " complete.\r\n";
}
for (int yao : liuYao) {
cout << yao << " ";
}
cout << endl;
return 0;
}
六爻分别为:少阴、少阴、少阳、老阳、老阳、少阴