24点游戏C++程序源代码

跪求C++24点游戏源代码,最好有注释,能让初学者看懂的最好,谢谢~~~...
issues like the commer
给你看看,挺长的哦//程序作者:魏洪源
//版权所有,转载请联系:why2942@163.com
#include<iostream>
#include<string>
#include<time.h>
using namespace std;#define NUM 1000
int j=2;//定义为全局变量
int randNum[NUM];//因为rand()函数有一定的缺陷,所以在程序中定义了randNum数组来存放随机数
//即使使用了种子函数srand(),由于程序运行时间比较短,也不太好设置种子。因此使用数组来存放随机数class Poker
{
private:
int poker[53]; //扑克
int pokerValue[53]; //扑克代表的数值
string pokerName[53]; //扑克名

int money; //玩家钱数
int bet; //玩家的赌注 int pokerF[5]; //玩家手中的牌 F:Farmer L:Landlord
int pokerL[5]; //庄家手中的牌 F:Farmer L:Landlord
int pokerNumF; //玩家手中的牌数
int pokerNumL; //庄家手中的牌数
public:
Poker(); //构造函数,对牌初始化
void initPoker(); //洗牌,在每轮游戏开始前进行
string getPokerF(); //用字符串的形式返回玩家的牌
string getPokerL(); //用字符串的形式返回庄家的牌
int getSumF(); //返回玩家牌的点数,用以判断是否超过21点
int getSumL(); //返回庄家牌的点数
void farmerAsk(); //玩家要牌
void landlordAsk(); //庄家要牌
void inputBet(); //玩家输入赌注
void newGame(); //开始新游戏
void landlordProcess(); //在玩家不要牌时进行处理};Poker::Poker()
{ poker[0]=0;
for(int i=1;i<=13;i++) //|
{ //|
poker[i]=i; //|用构造函数对牌初始化
poker[i+13]=i; //|
poker[i+26]=i; //|
poker[i+39]=i; //|
}//for结束 pokerValue[0]=0;
for(i=1;i<=52;i++)
{
if(poker[i]<=10) pokerValue[i]=poker[i];
else pokerValue[i]=10;
}//for结束
pokerName[0]="";
for(i=0;i<4;i++)
{
pokerName[1+13*i]="A";
pokerName[2+13*i]="2";
pokerName[3+13*i]="3";
pokerName[4+13*i]="4";
pokerName[5+13*i]="5";
pokerName[6+13*i]="6";
pokerName[7+13*i]="7";
pokerName[8+13*i]="8";
pokerName[9+13*i]="9";
pokerName[10+13*i]="10";
pokerName[11+13*i]="J";
pokerName[12+13*i]="Q";
pokerName[13+13*i]="K";
}//for结束

money=200; //玩家开始玩游戏时钱数是200
bet=0;

for(i=0;i<5;i++)
{
pokerF[i]=0; //|对pokerOfFarmer初始化
pokerL[i]=0; //|对pokerOfLandlord初始化
}
pokerNumF=0;//玩家手中的牌数初始化为0
pokerNumL=0;//庄家手中的牌数初始化为0

srand((int)time(0));
for(i=0;i<NUM;i++)
这是个算24点的程序,很像c++的一段代码#include <iostream>
#include <sys/timeb.h>
#include <vector>
#include <string>
#include <stdio.h>using std::vector;
using std::string;
using namespace std;class Node
{
public:
enum OpType
{
UNARY, PLUS, SUB, SUB2, MUL, DIV, DIV2
}; double& value(){ return value_; }
double value() const { return value_; } bool Add() { op_ = PLUS; value_ = left_->value_ + right_->value_; return true; }
bool Sub() { op_ = SUB; value_ = left_->value_ - right_->value_; return true; }
bool Sub2() { op_ = SUB2; value_ = right_->value_ - left_->value_; return true; }
bool Mul() { op_ = MUL; value_ = left_->value_ * right_->value_; return true; }
bool Div() { if(right_->value_==0)return false; op_ = DIV; value_ = left_->value_ / right_->value_; return true; }
bool Div2() { if(left_->value_==0)return false; op_ = DIV2; value_ = right_->value_ / left_->value_;return true; } Node( double d = 0 )
: left_(0), right_(0), op_(UNARY), value_(d)
{ }
Node( Node* l, Node *r )
: left_(l), right_(r), op_(UNARY), value_(0)
{ } string getExpr()
{
if( op_ == UNARY )
{
char buf[32];
return "";
} string str;
switch( op_ )
{
case PLUS:
case SUB:
case MUL:
case DIV:
str += "(";
str += left_->getExpr();
str += " +--*//"[op_];
str += right_->getExpr();
str += ")";
break;
case SUB2:
case DIV2:
default:
str += "(";
str += right_->getExpr();
str += " +--*//"[op_];
str += left_->getExpr();
str += ")";
}
return str;
} double value_;
OpType op_;
Node *left_;
Node *right_;
};template<unsigned int L>
bool query( double target, Node** cand, string& expr )
{
for( unsigned int k=0; k<L-1; ++k )
{<
http://zhidao.baidu.com/question/573880000html