博客
关于我
24点小游戏(c++)
阅读量:594 次
发布时间:2019-03-12

本文共 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/

你可能感兴趣的文章
MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
查看>>
Mysql中varchar类型数字排序不对踩坑记录
查看>>
MySQL中一条SQL语句到底是如何执行的呢?
查看>>
MySQL中你必须知道的10件事,1.5万字!
查看>>
MySQL中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>