提前bb:采用的ide是vc++ 6.0 ,并且是通过24点游戏.cpp包含Judge.h、compute.h、menu.h3个文件
一、题目分析
24点游戏是经典的纸牌益智游戏。
游戏规则:
从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
要求(全部实现):
1.随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式。
2.程序风格良好(使用自定义注释模板)。
3.列出表达式无重复。
4.用户初始生命值为一给定值(比如3),初始分数44 CC为0。随机生成4个代表扑克牌牌面的数字或字母,由用户输入包含这4 个数字或字母的运算表达式(可包含括号),如果表达式计算结果为24则代表用户赢了此局。
5.使用计时器要求用户在规定时间内输入表达式,如果规定时间内运算正确则加分,超时或运算错误则进入下一题并减少生命值(不扣分)。
6.所有成绩均可记录在TopList.txt文件中。
二、算法分析
难难点在于表达式的计算,其实就是后缀表达式的计算~具体过程可见代码或者其他教程。
计时可以用time_t类型的变量,设定一个time_begin,然后用当前已运行的时间减去起始时间,超过规定的时间则执行其他操作(此处我设定的是3s,觉得时间短了的可以改)。
三、流程图
四、代码实现
【24点游戏.cpp】
//版本:1.1
//主要功能:系统随机生成四个数字,游戏玩家输入由四个数字组成的四则运算表达式,使计算结果得24
//系统会检查玩家输入的四则运算表达式是否正确。并给出提示。同时系统会给出所有的表达式使得这四个
//数字的运算结果为24
#include<iostream>
#include"menu.h"
#include"compute.h"
#include"Judge.h"
#include<math.h>
using namespace std;
int main()
{
int option;
int flag;
char a;
Menu();
do
{
cout<<"请输入你的选项:";
cin>>option;
if(option>=1&&option<=3)
{
flag=1;
break;
}
else
{
flag=0;
cout<<"你的输入有误,请重新输入!"<<endl;
}
}while(flag==0);
while(flag==1)
{
switch(option)
{