C++课程设计报告---21点纸牌游戏程序

  • 格式:doc
  • 大小:69.00 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

#include

#include

class Game

{

public:

Game()

{

win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0;

player=0,cpu=0;

char answer1[]="123456";

strcpy(answer,answer1);

char answer2[]="654321";

strcpy(daan,answer2);

};

void rules();//显示规则

void BET(); //下注

void deal();//交易

void run(Game &);//进行异常处理

void hit1();//拿下一牌

void hit2();//确保庄家不会爆庄并且点数大于16

void print();//打印出最后结果

void results();//最后的胜利结果

void check();//检查是否爆庄

Game operator=(Game &d);//运算符重载

void replay(char &ans);//是否进行新一轮的游戏

void clean();//清屏

void wait(int);

void pause();

int GetInt(int,int);

int random(long,long);

private:

int playerturns,cputurns,money;

int win,lose,draw,bet;

float player,cpu;

char answer[7];

char daan[7];

};

//---------------------------------------------------------------------------------------

void Game::wait(int milli)

{

clock_t start;

start=clock();

while( ( clock()-start ) < milli )

;

}

//========================================================= void Game:: pause()

{

cout<<"Press Any Key To Continue"<

getch();

}

//=========================================================

int Game::GetInt(int L=0,int H=100)

{

int ent;

cout<<"Please Enter A Number Between "<

cin>>ent;

while((entH))

{

cout<<"Error"<

cout<<"Value must be between "<

cin>>ent;

}

return(ent);

}

//==========================================================

int Game::random(long hi,long lo)//随机抽牌

{

int ran;

srand((unsigned)time(NULL));

ran=rand()%(hi-(lo-1))+lo;

return(ran);

}

//============================================================= void Game::rules()

{

cout<<"\t\t\t *********欢迎使用21点游戏软件*********"<

cout<

cout<

cout<<"\t\t\t 游戏规则:"<

cout<

cout<<"\t\t\t ※①:每轮游戏你最多只可以有5牌。"<

cout<<"\t\t\t ※②:如果你的点数超过21将输掉这轮游戏。"<

cout<<"\t\t\t ※③:高级玩家可以看下一牌。"<

cout<<"\t\t\t ※④:胜利者将得到2倍的注金。"<

cout<<"\t\t\t ※⑤:庄家牌点数不会小于16点。"<

cout<<"\t\t\t";

pause();

}

//---------------------------------------------------------------------------------------

void Game::BET()//下注

{

system("cls");//执行系统命令cls

cout<<"\t\t\t你的资本:$"<

cout<<"\t\t\t你想下多少赌注?: ";

cin>>bet;

if(bet<=0)

{

cout<<"对不起,输入有误";

exit(0);

}

if(money-bet<0)

{

cout<<"对不起,你没有那么多钱!:("; //sees if your broke

exit(0);

}

money-=bet;

}

//----------------------------------------------------------------------------------------

void Game::deal()//发前两牌

{

int playercard1,playercard2,cpucard1,cpucard2;

float ccard1,ccard2,pcard2,pcard1;

playerturns=2;//开始给玩家发两牌

cputurns=2;//庄家也发两牌

playercard1=random(13,1);//在1到13中找出一个随机数

cout<<"\n\t\t\t正在洗牌,请稍候......"<

wait(500);

playercard2=random(13,1);

wait(500);

cout<<"["<

cout<<"["<

if(playercard1>10)//大于十的牌点数全部置为0.5

{

pcard1=0.5,player=pcard1,playercard1=0;