#include
#include
#include
#include
#include
using namespace std;
struct pai{
int denji;
char huase[3];
char dianshu[3];
int dianshu2[3];
};
class yonghu{ //定义用户类(玩家和电脑是这个类的对象)
char* name;
int qianshu;
public:
pai paipai;
void setname(char *s){
name=new char[strlen(s)+1];
strcpy(name,s);};
char* getname(){
return name;}
void setqianshu(int x){
qianshu=x;}
int getqianshu(){
return qianshu;}
~yonghu(){
if(name!=NULL)
delete []name;}
};
int jiancha(yonghu *w,yonghu *d){
if(w->paipai.dianshu[0]==w->paipai.diansh u[1]&&w->paipai.huase[0]==w->paipai.hua se[1])
return 0;
if(w->paipai.dianshu[0]==w->paipai.diansh u[2]&&w->paipai.huase[0]==w->paipai.hua se[2])
return 0;
if(w->paipai.dianshu[0]==d->paipai.diansh
u[0]&&w->paipai.huase[0]==d->paipai.hua se[0])
return 0;
if(w->paipai.dianshu[0]==d->paipai.diansh u[1]&&w->paipai.huase[0]==d->paipai.hua se[1])
return 0;
if(w->paipai.dianshu[0]==d->paipai.diansh u[2]&&w->paipai.huase[0]==d->paipai.hua se[2])
return 0;
if(w->paipai.dianshu[1]==w->paipai.diansh
u[2]&&w->paipai.huase[1]==w->paipai.hua se[2])
return 0;
if(w->paipai.dianshu[1]==d->paipai.diansh u[0]&&w->paipai.huase[1]==d->paipai.hua se[0])
return 0;
if(w->paipai.dianshu[1]==d->paipai.diansh u[1]&&w->paipai.huase[1]==d->paipai.hua se[1])
return 0;
if(w->paipai.dianshu[1]==d->paipai.diansh
u[2]&&w->paipai.huase[1]==d->paipai.hua se[2])
return 0;
if(w->paipai.dianshu[2]==d->paipai.diansh u[0]&&w->paipai.huase[2]==d->paipai.hua se[0])
return 0;
if(w->paipai.dianshu[2]==d->paipai.diansh u[1]&&w->paipai.huase[2]==d->paipai.hua se[1])
return 0;
if(w->paipai.dianshu[2]==d->paipai.diansh
u[2]&&w->paipai.huase[2]==d->paipai.hua se[2])
return 0;
if(d->paipai.dianshu[0]==d->paipai.diansh u[1]&&w->paipai.huase[0]==d->paipai.hua se[1])
return 0;
if(d->paipai.dianshu[0]==d->paipai.diansh u[2]&&w->paipai.huase[0]==d->paipai.hua se[2])
return 0;
if(d->paipai.dianshu[1]==d->paipai.diansh
u[2]&&w->paipai.huase[1]==d->paipai.hua se[2])
return 0;
return 1;
}
void paixu(yonghu *h){
int jiaohuan;
if(h->paipai.dianshu2[0]
jiaohuan=h->paipai.dianshu[0];
h->paipai.dianshu[0]=h->paipai.dianshu[ 1];
h->paipai.dianshu[1]=jiaohuan;
jiaohuan=h->paipai.dianshu2[0];
h->paipai.dianshu2[0]=h->paipai.diansh u2[1];
h->paipai.dianshu2[1]=jiaohuan;
}
if(h->paipai.dianshu2[1]
jiaohuan=h->paipai.dianshu[1];
h->paipai.dianshu[1]=h->paipai.dianshu[ 2];
h->paipai.dianshu[2]=jiaohuan;
jiaohuan=h->paipai.dianshu2[1];
h->paipai.dianshu2[1]=h->paipai.diansh
u2[2];
h->paipai.dianshu2[2]=jiaohuan;
}
if(h->paipai.dianshu2[0]
jiaohuan=h->paipai.dianshu[0];
h->paipai.dianshu[0]=h->paipai.dianshu[ 1];
h->paipai.dianshu[1]=jiaohuan;
jiaohuan=h->paipai.dianshu2[0];
h->paipai.dianshu2[0]=h->paipai.diansh u2[1];
h->paipai.dianshu2[1]=jiaohuan;
}
}
int denji(yonghu *w){ //确定牌的等级
if((w->paipai.dianshu[0]==w->paipai.dia nshu[1])&&(w->paipai.dianshu[1]==w->pai pai.dianshu[2]))//豹子
{w->paipai.denji=6;return 0;}
else
if((w->paipai.huase[0]==w->paipai.huase[ 1])&&(w->paipai.huase[0]==w->paipai.hua se[2])) //同花
{
if(w->paipai.dianshu2[0]==(w->paipai.di
anshu2[1]+1)&&w->paipai.dianshu2[1]==( w->paipai.dianshu2[2]+1))
{w->paipai.denji=5;return 0;}//同花顺w->paipai.denji=4;return 0;}
else
if(w->paipai.dianshu2[0]==(w->paipai.dian shu2[1]+1)&&w->paipai.dianshu2[1]==(w->paipai.dianshu2[2]+1))
{w->paipai.denji=3;return 0;}//顺子
else
if(w->paipai.dianshu[0]==w->paipai.diansh u[1]||w->paipai.dianshu[0]==w->paipai.dia nshu[2]||w->paipai.dianshu[1]==w->paipai. dianshu[2])//对子
{w->paipai.denji=2;return 0;}
else
w->paipai.denji=1;return 0;
}
void fapai(yonghu *w,yonghu *d){ //产生随机数对应牌的点数和花色
srand(time(0));
int jb=0;
for(;jb<1;){
for(int l=0;l<3;l++){
w->paipai.dianshu[l]=NULL;
d->paipai.dianshu[l]=NULL;
w->paipai.huase[l]=0;
d->paipai.huase[l]=0;}
int shu=0;
int hua=0;
for(int i=0;i<3;i++)
{for(;shu<=0;){
shu=rand()%13+2;}
if(shu==14) //可以用switch语句
{w->paipai.dianshu[i]='A';w->paipai.dian shu2[i]=14;}
else if(shu==10)
{w->paipai.dianshu[i]='S';w->paipai.dian shu2[i]=10;}
else if(shu==11)
{w->paipai.dianshu[i]='J';w->paipai.dians hu2[i]=11;}
else if(shu==12)
{w->paipai.dianshu[i]='Q';w->paipai.dian shu2[i]=12;}
else if(shu==13)
{w->paipai.dianshu[i]='K';w->paipai.dian shu2[i]=13;}
else
{w->paipai.dianshu[i]=shu+48;w->paipai .dianshu2[i]=shu;}
for(;hua<=0;){
hua=rand()%4+3;}
w->paipai.huase[i]=hua;
shu=0;
hua=0;
}
paixu(w);
denji(w);
for(i=0;i<3;i++)
{for(;shu<=0;){
shu=rand()%13+2;}
if(shu==14) //可以用switch语句
{d->paipai.dianshu[i]='A';d->paipai.dians hu2[i]=14;}
else if(shu==10)
{d->paipai.dianshu[i]='S';d->paipai.dians hu2[i]=10;}
else if(shu==11)
{d->paipai.dianshu[i]='J';d->paipai.dians hu2[i]=11;}
else if(shu==12)
{d->paipai.dianshu[i]='Q';d->paipai.dians hu2[i]=12;}
else if(shu==13)
{d->paipai.dianshu[i]='K';d->paipai.dians hu2[i]=13;}
else
{d->paipai.dianshu[i]=shu+48;d->paipai. dianshu2[i]=shu;}
for(;hua<=0;){
hua=rand()%4+3;}
d->paipai.huase[i]=hua;
shu=0;
hua=0;
}
jb=jiancha(w,d);}
paixu(d);
denji(d);
};
void paimian(yonghu *y){ //将牌的点数和花色以图形的形式输出
cout<<"_________ _________ _________"< cout<<"|"< cout<<"| | | | | |"< cout<<"| | | | | |"< cout<<"| | | | | |"< cout<<"|"< cout<<"_________ _________ _________"< int sanpai(yonghu *w,yonghu *d){ //比较散牌的大小 if(w->paipai.denji==2) {if(w->paipai.dianshu2[1]>d->paipai.dian shu2[1]) return 1; if(w->paipai.dianshu2[1] return 0;} if((w->paipai.dianshu[0]=='A'||w->paipai. dianshu[1]=='A'||w->paipai.dianshu[2]=='A' )&&(d->paipai.dianshu[0]!='A'||d->paipai.di anshu[1]!='A'||d->paipai.dianshu[2]!='A')) return 1; if((w->paipai.dianshu[0]!='A'||w->paipai. dianshu[1]!='A'||w->paipai.dianshu[2]!='A') &&(d->paipai.dianshu[0]=='A'||d->paipai.di anshu[1]=='A'||d->paipai.dianshu[2]=='A')) return 0; if((w->paipai.dianshu[0]=='K'||w->paipai. dianshu[1]=='K'||w->paipai.dianshu[2]=='K'