本文共 3450 字,大约阅读时间需要 11 分钟。
#include#include #include #include #include #include using namespace std;char card[] = { 'A','2','3','4','5','6','7','8','9','10','J','Q','K' };char buf[4];double nums[4];char ope[4] = { '+','-','*','/' };void cre(){ srand(time(0)); for(int i = 0; i < 4; i++) { int j = rand() % 13; buf[i] = card[j]; //随机生成四张牌面为: } for(int i = 0; i < 4; i++) { if(buf[i] == 'A' ) nums[i] = 1; else if(buf[i] == '2') nums[i] = 2; else if(buf[i] == '3') nums[i] = 3; else if(buf[i] == '4') nums[i] = 4; else if(buf[i] == '5') nums[i] = 5; else if(buf[i] == '6') nums[i] = 6; else if(buf[i] == '7') nums[i] = 7; else if(buf[i] == '8') nums[i] = 8; else if(buf[i] == '9') nums[i] = 9; else if(buf[i] == '10') nums[i] = 10; else if(buf[i] == 'J') nums[i] = 11; else if(buf[i] == 'Q') nums[i] = 12; else if(buf[i] == 'K') nums[i] = 13; }}double calcute(double a, double b, char index){ if(index == '+') return a + b; else if(index == '-') return a - b; else if(index == '*') return a * b; else if(index == '/') { if(b != 0) return a / b; //分母不能为0 }}void exh(){ double temp[3]; for(int m = 0; m < 3; m++) { if(nums[m+1] == 0 && ope[m] == '/') break; temp[m] = calcute(nums[m], nums[m+1], ope[m]); idx = (m+2)%3; temp[idx] = nums[idx+1]; //初始化剩下的部分 idx = (m+3)%3; temp[idx] = nums[idx+1]; } for(int n = 0; n < 2; n++) { if(temp[n+1] == 0 && ope[n] == '/') break; tem[n] = calcute(temp[n], temp[n+1], ope[n]); idx = (n+2) % 2; tem[idx] = temp[idx+1]; } if(tem[1] == 0 && ope[k] == '/') break; sum = calcute(tem[0], tem[1], ope[k]); if(sum == 24) { if(m == 0 && n == 0) { cout << "((" << nums[0] << ope[i] << nums[1] << ")" << ope[j] << nums[2] << ")=" << sum << endl; } else if(m == 0 && n == 1) { cout << "(" << nums[0] << ope[i] << nums[1] << ")" << ope[k] << "(" << nums[2] << ope[j] << nums[3] << ")=" << sum << endl; } else if(m == 1 && n == 0) { cout << "(" << nums[0] << ope[j] << "(" << nums[1] << ope[i] << nums[2] << ")" << ope[k] << nums[3] << )=" << sum << endl; } else if(m == 1 && n == 1) { cout << (nums[0] << ope[k] << "((" << nums[1] << ope[i] << nums[2] << "))" << ope[j] << nums[3] << )=" << sum << endl; } else if(m == 0 && n == 0) { cout << "((" << nums[0] << ope[i] << nums[1] << ")" << ope[j] << nums[2] << ")=" << sum << endl; } else if(m == 0 && n == 1) { cout << "(" << nums[0] << ope[i] << nums[1] << ")" << ope[k] << "(" << nums[2] << ope[j] << nums[3] << ")=" << sum << endl; } else if(m == 1 && n == 0) { cout << "(" << nums[0] << ope[j] << "(" << nums[1] << ope[i] << nums[2] << ")" << ope[k] << nums[3] << )=" << sum << endl; } else if(m == 1 && n == 1) { cout << (nums[0] << ope[k] << "((" << nums[1] << ope[i] << nums[2] << "))" << ope[j] << nums[3] << )=" << sum << endl; } }}int main(){ int i; int select = 1; cout << " ################################################" << endl << "#" << endl << " # 欢迎进入24点游戏 #" << endl << " ################################################" << endl; while(select) { //-clear screen- Sleep(1000); system("cls"); cout << " ################################################" << endl << "#" << endl << " # 请选择游戏模式 #" << endl << " # 0. 开始游戏 1. 退出 #" << endl << " # consortium#" << endl << " ################################################" << endl; cout << " 请输入你的选择(0或1):"; cin >> i; Sleep(1000); system("cls"); switch(i) { case 0: cre(); exh(); break; case 1: select = 0; break; default: cout << "请在0和1之间选择!" << endl; } } return 0;}
转载地址:http://nzjxz.baihongyu.com/