代码
#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;#endifint 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;
#endiffor (int i = 0; i < gua.size(); ++i){qiYong -= gua[i];}gua.clear();std::cout << "new qiYong: " << qiYong << endl;if (step != 3) {// 放回1qiYong += 1;}}liuYao.push_back( qiYong / 4 );cout << yao << " complete.\r\n";}for (int yao : liuYao) {cout << yao << " ";}cout << endl;return 0;
}
六爻分别为:少阴、少阴、少阳、老阳、老阳、少阴