21点程序源代码
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 3:
game.super(); break;
default:
cout<<"选择错误,程序退出!"<<endl;
}
return(0);
}
void CCard::setmoney(int a)
{
money=a;
}
//--------------------------------------------------------------------------------
{
do{
cout<<"你输入的字母错误,请从新输入."<<endl;
cin>>ans;
}while((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'));
}
if((ans=='h')||(ans=='H'))
//fuctions.
class CCard {
private:
float player; //玩家点数
float cpu; //电脑点数
int win; //赢的次数
game.deal(player,cpu,playerturns,cputurns); //为计算机和玩家个发两张牌
do{
cout<<"\n你想继续要牌还是不再要牌?h/s:"; //询问玩家是否要牌
cin>>ans;
if((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'))
cout<<"如果您是高级玩家请按2."<<endl;
cout<<"如果您是超级玩家请按3."<<endl;
cin>>ch;
switch(ch)
{
case 1:
mon(); break;
case 2:
game.advanced(); break;
{
game.reBET(bet,money);
playerturns++; //玩家手中牌数增加一张
if(playerturns>5) //看玩家是否超过五张牌
{
cout<<"\t\t\t你不能拥有多于5张牌.";
}
cout.flush();
ch=getch();
while(ch!=N)
{
str[i++]=ch;
cout<<'*'; //密码用*号取代
cout.flush();
ch=getch();
}
str[i]=0;
}while(strcmp(str,Tempchar)!=0);
void hit(float &total); //普通玩家要一张牌
void hit2(float &total); //高级玩家要一张牌
void hit3(float &total); //超级玩家要一张牌
}
if((playerturns<6)&&(ans=='h')) //判断是否符合要牌条件
{
cout<<endl;
game.hit2(player); //调用发牌程序
}
}while((ans=='h')||(ans=='H')); //继续询问玩家是否要牌
void BET(int &bet,int &money); //下注
void results(float player,float cpu,int bet,int &money,int &draw,int &win,int &lose); //判断输赢
for(;(cpu<16)&&(cputurns<6);cputurns++) //计算机开始要牌条件
{
cout<<endl;
cout<<"\t\t\t电脑接了一张牌"<<endl;
void reBET(int &bet,int &money);
int common(); //普通玩家
int advanced(); //高级玩家
int super(); //超级玩家
}game;
void replay(char &ans); //询问是否继续玩
void print(int wins,int lose,int draw,int money); //输出最后结果
void deal(float &player,float &cpu,int &playerturns,int &cputurns); //为计算机和玩家个发两张牌
#include<iostream.h>
#include<stdlib.h>
#include "utility.h"
#include "wait.h"
#include<fstream.h>
#include<conio.h>
#include<string.h>
#define N '\r'
}
if((playerturns<6)&&(ans=='h')) //判断是否符合要牌条件
{
cout<<endl;
game.hit(player); //调用发牌程序
}
}while((ans=='h')||(ans=='H')); //继续询问玩家是否要牌
for(;(cpu<16)&&(cputurns<6);cputurns++) //计算机开始要牌条件
{
cout<<endl;
cout<<"\t\t\t电脑接了一张牌."<<endl;
game.hit(cpu); //调用发牌程序
}
cout<<endl;
cout<<endl;
game.rules();
cout<<"\t\t\t你想玩吗?y/n:";
cin>>ans;
if((ans == 'y')||(ans=='Y'))
{
cout<<"\t\t\t给你100美元初始钱数"<<endl; //给玩家本钱
game.setmoney(100);
int main(int &money)
{
void rules();
float player=0,cpu=0;
int win=0,lose=0,draw=0,playerturns=0,cputurns=0;
char ans;
int ch;
system("cls"); //执行系统命令 cls
game.deal(player,cpu,playerturns,cputurns);//为计算机和玩家个发两张牌
do{
cout<<"\t\t\t你想继续要牌还是不再要牌?h/s :"; //询问玩家是否要牌
cin>>ans;
if((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'))
int CCard::advanced()
{
ifstream infile;
char Tempchar[22],Filename[20];
strcpy(Filename,"password1.txt");
infile.open(Filename);
char str[20];
cout<<"\t\t\t电脑的牌点总数是:"<<cpu<<endl; //输出电脑的牌面总点数
cout<<"\t\t\t你的牌点总数是:"<<player<<endl;//输出玩家的牌面总点数
cout<<endl;
game.results(player,cpu,bet,money,draw,win,lose); //判断输赢
cout<<"\t\t\t";
pause(); //暂停,按任意间继续
} //检查输入是否是YES
else
{
return(0);
}
cout<<"如果您是普通玩家请按1."<<endl;
{
do{
cout<<"你输入的字母错误,请从新输入."<<endl;
cin>>ans;
}while((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'));
}
if((ans=='h')||(ans=='H'))
char ans;
do{
system("cls");
if(money<0) //看是否无赌本
{
cout<<"你破产了!"<<endl; //若输光了,结束程序
return(0);
}
game.BET(bet,money); //下注程序
if(!infile)
{
cout<<"打开文件错误!\n";
exit(0);
}
infile.getline(Tempchar,22);
do{
char ch;
int i=0;
cout<<"\n请输入密码,以回车键结束:"<<endl;//设置密码
game.replay(ans);
}while((ans=='y')||(ans=='Y'));
game.print(win,lose,draw,money);
cout<<endl;
cout<<"\t\t\t\t";
return(0);
}
//---------------------------------------------------------------------------------------
int lose; //输的次数
int draw; //平的次数
int playerturns; //玩家牌数
int cputurns; //电脑牌数
int CCard::common()
{
char ans;
do{
system("cls");
if(money<0) //看是否无赌本
{
cout<<"你破产了!"<<endl; //若输光了,结束程序
return(0);
}
game.BET(bet,money); //下注程序
{
game.reBET(bet,money);
playerturns++; //玩家手中牌数增加一张
if(playerturns>5) //看玩家是否超过五张牌
{
cout<<"\t\t\t你不能拥有多于5张牌.";
}
int money; //有多少钱
int bet; //下注的钱
public:
void setmoney(int a); //给玩家本钱
void rules(); //游戏规则
game.super(); break;
default:
cout<<"选择错误,程序退出!"<<endl;
}
return(0);
}
void CCard::setmoney(int a)
{
money=a;
}
//--------------------------------------------------------------------------------
{
do{
cout<<"你输入的字母错误,请从新输入."<<endl;
cin>>ans;
}while((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'));
}
if((ans=='h')||(ans=='H'))
//fuctions.
class CCard {
private:
float player; //玩家点数
float cpu; //电脑点数
int win; //赢的次数
game.deal(player,cpu,playerturns,cputurns); //为计算机和玩家个发两张牌
do{
cout<<"\n你想继续要牌还是不再要牌?h/s:"; //询问玩家是否要牌
cin>>ans;
if((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'))
cout<<"如果您是高级玩家请按2."<<endl;
cout<<"如果您是超级玩家请按3."<<endl;
cin>>ch;
switch(ch)
{
case 1:
mon(); break;
case 2:
game.advanced(); break;
{
game.reBET(bet,money);
playerturns++; //玩家手中牌数增加一张
if(playerturns>5) //看玩家是否超过五张牌
{
cout<<"\t\t\t你不能拥有多于5张牌.";
}
cout.flush();
ch=getch();
while(ch!=N)
{
str[i++]=ch;
cout<<'*'; //密码用*号取代
cout.flush();
ch=getch();
}
str[i]=0;
}while(strcmp(str,Tempchar)!=0);
void hit(float &total); //普通玩家要一张牌
void hit2(float &total); //高级玩家要一张牌
void hit3(float &total); //超级玩家要一张牌
}
if((playerturns<6)&&(ans=='h')) //判断是否符合要牌条件
{
cout<<endl;
game.hit2(player); //调用发牌程序
}
}while((ans=='h')||(ans=='H')); //继续询问玩家是否要牌
void BET(int &bet,int &money); //下注
void results(float player,float cpu,int bet,int &money,int &draw,int &win,int &lose); //判断输赢
for(;(cpu<16)&&(cputurns<6);cputurns++) //计算机开始要牌条件
{
cout<<endl;
cout<<"\t\t\t电脑接了一张牌"<<endl;
void reBET(int &bet,int &money);
int common(); //普通玩家
int advanced(); //高级玩家
int super(); //超级玩家
}game;
void replay(char &ans); //询问是否继续玩
void print(int wins,int lose,int draw,int money); //输出最后结果
void deal(float &player,float &cpu,int &playerturns,int &cputurns); //为计算机和玩家个发两张牌
#include<iostream.h>
#include<stdlib.h>
#include "utility.h"
#include "wait.h"
#include<fstream.h>
#include<conio.h>
#include<string.h>
#define N '\r'
}
if((playerturns<6)&&(ans=='h')) //判断是否符合要牌条件
{
cout<<endl;
game.hit(player); //调用发牌程序
}
}while((ans=='h')||(ans=='H')); //继续询问玩家是否要牌
for(;(cpu<16)&&(cputurns<6);cputurns++) //计算机开始要牌条件
{
cout<<endl;
cout<<"\t\t\t电脑接了一张牌."<<endl;
game.hit(cpu); //调用发牌程序
}
cout<<endl;
cout<<endl;
game.rules();
cout<<"\t\t\t你想玩吗?y/n:";
cin>>ans;
if((ans == 'y')||(ans=='Y'))
{
cout<<"\t\t\t给你100美元初始钱数"<<endl; //给玩家本钱
game.setmoney(100);
int main(int &money)
{
void rules();
float player=0,cpu=0;
int win=0,lose=0,draw=0,playerturns=0,cputurns=0;
char ans;
int ch;
system("cls"); //执行系统命令 cls
game.deal(player,cpu,playerturns,cputurns);//为计算机和玩家个发两张牌
do{
cout<<"\t\t\t你想继续要牌还是不再要牌?h/s :"; //询问玩家是否要牌
cin>>ans;
if((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'))
int CCard::advanced()
{
ifstream infile;
char Tempchar[22],Filename[20];
strcpy(Filename,"password1.txt");
infile.open(Filename);
char str[20];
cout<<"\t\t\t电脑的牌点总数是:"<<cpu<<endl; //输出电脑的牌面总点数
cout<<"\t\t\t你的牌点总数是:"<<player<<endl;//输出玩家的牌面总点数
cout<<endl;
game.results(player,cpu,bet,money,draw,win,lose); //判断输赢
cout<<"\t\t\t";
pause(); //暂停,按任意间继续
} //检查输入是否是YES
else
{
return(0);
}
cout<<"如果您是普通玩家请按1."<<endl;
{
do{
cout<<"你输入的字母错误,请从新输入."<<endl;
cin>>ans;
}while((ans!='H'&&ans!='h'&&ans!='s'&&ans!='S'));
}
if((ans=='h')||(ans=='H'))
char ans;
do{
system("cls");
if(money<0) //看是否无赌本
{
cout<<"你破产了!"<<endl; //若输光了,结束程序
return(0);
}
game.BET(bet,money); //下注程序
if(!infile)
{
cout<<"打开文件错误!\n";
exit(0);
}
infile.getline(Tempchar,22);
do{
char ch;
int i=0;
cout<<"\n请输入密码,以回车键结束:"<<endl;//设置密码
game.replay(ans);
}while((ans=='y')||(ans=='Y'));
game.print(win,lose,draw,money);
cout<<endl;
cout<<"\t\t\t\t";
return(0);
}
//---------------------------------------------------------------------------------------
int lose; //输的次数
int draw; //平的次数
int playerturns; //玩家牌数
int cputurns; //电脑牌数
int CCard::common()
{
char ans;
do{
system("cls");
if(money<0) //看是否无赌本
{
cout<<"你破产了!"<<endl; //若输光了,结束程序
return(0);
}
game.BET(bet,money); //下注程序
{
game.reBET(bet,money);
playerturns++; //玩家手中牌数增加一张
if(playerturns>5) //看玩家是否超过五张牌
{
cout<<"\t\t\t你不能拥有多于5张牌.";
}
int money; //有多少钱
int bet; //下注的钱
public:
void setmoney(int a); //给玩家本钱
void rules(); //游戏规则