C课程设计点纸牌游戏程序
ran=rand()%(hi-(lo-1))+lo;
return(ran);
}
//=============================================================
void Game::rules()
{
cout<<"\t\t\t *********欢迎使用21点游戏软件*********"<<endl;
}
else
{
if(cards==0.5)
player-=cards;
card=random(13,1);
copycard=card;
char ans,s1[100];
cout<<"如果您是普通玩家请按n."<<endl;
cout<<"如果您是高级玩家或超级玩家请按y."<<endl;
cin>>ans;
label1:if(ans=='y'||ans=='Y')
{
cin.ignore(20,'\n');//把输入行中的其余字符取空,以便后面的输入从新一路轮开始
{
cout<<"你的现金还有$"<<money<<endl;
cout<<"你要加多少注?(你也可以不加)";
cin>>bet1;
if(money-bet1<0)
{
cout<<"你没有足够的赌注";
}
money=money-bet1;
bet+=bet1;
cout<<"\t\t\t你的总点数为 :"<<player<<endl;
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 Game:: pause()
{
cout<<"Press Any Key To Continue"<<endl;
getch();
}
//=========================================================
int Game::GetInt(int L=0,int H=100)
{
cout<<endl;
cout<<"\t\t\t庄家得到一张牌!"<<endl;
c2.hit2(); //calls hit function
}
cout<<endl;
cout<<endl;
cout<<"\t\t\t庄家的点数为:"<<cpu<<endl; //显示庄家的总点数
cout<<"\t\t\t你的点数为:"<<player<<endl;//显示玩家的总点数
void Game::BET()//下注
{
system("cls");//执行系统命令cls
cout<<"\t\t\t你的资本:$"<<money<<endl;
cout<<"\t\t\t你想下多少赌注?: ";
cin>>bet;
if(bet<=0)
{
cout<<"对不起,输入有误";
exit(0);
do{
if(playerturns==5)cout<<"已达最大牌数,不能再要牌了,请按任意键看你的总的点数!"<<endl;
do{
try{ //开始捕获异常处理
cout<<"\t\t\t你愿意继续吗?(hit愿意,stay否):";
m=0; //可以没有的!但把下面的if语句改一下就必须有了
cout<<flush;//刷新流
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<iostream.h>
#include<string.h>
class Game
{
public:
Game()
{
win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0;
cout<<"\t\t\t庄家有一张 "<<cpucard1<<" 为正面牌!"<<endl;
cout<<"[*] "<<" ["<<cpucard1<<"]";
if(cpucard1>10)//大于十的牌点数全部置为0.5
{
ccard1=0.5,cpu=ccard1,cpucard1=0;
}
if(cpucard2>10)//大于十的牌点数全部置为0.5
}
player+=playercard1+playercard2;//总点数
cout<<"\t\t\t你现在的点数为:"<<player<<endl;
cout<<endl;
cpucard1=random(13,1);//调用函数
wait(350);
cpucard2=random(13,1);//调用函数
{
ccard2=0.5,cpu+=ccard2,cpucard2=0;
}
cpu+=cpucard1+cpucard2;//总的点数
cout<<endl;
}
//----------------------------------------------------------------------------------------
void Game::deal()//发前两张牌
{
int playercard1,playercard2,cpucard1,cpucard2;
float ccard1,ccard2,pcard2,pcard1;
playerturns=2;//开始给玩家发两张牌
cputurns=2;//庄家也发两张牌
cin>>ent;
}
return(ent);
}
//==========================================================
int Game::random(long hi,long lo)//随机抽牌
{
int ran;
srand((unsigned)time(NULL));
void replay(char &ans);//是否进行新一轮的游戏
void clean();//清屏
void wait(int);
void pause();
int GetInt(int,int);
int random(long,long);
private:
int playerturns,cputurns,money;
cout<<"\t\t\t ※④:胜利者将得到2倍的注金。"<<endl;
cout<<"\t\t\t ※⑤:庄家牌点数不会小于16点。"<<endl;
cout<<"\t\t\t";
pause();
}
//---------------------------------------------------------------------------------------
{
cout<<"你的输入有误!:(请重新输入"<<endl;
m=1;
}
catch(...){
cout<<"你的输入有误!:(请重新输入"<<e=0);
if((ans=='h')||(ans=='H'))
{
playerturns++;