文档库 最新最全的文档下载
当前位置:文档库 › 炸金花源代码

炸金花源代码

#include

#include//包含随机数函数

#include //包含sleep这个方法

#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]paipai.dians hu2[1]){

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]paipai.dians hu2[2]){

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]paipai.dians hu2[1]){

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<<"|"<paipai.dianshu[0]<<" |"<<" |"<paipai.dianshu[1]<<" |"<<" |"<paipai.dianshu[2]<<" |"<

cout<<"| | | | | |"<

cout<<"| | | | |

|"<

cout<<"| | | | | |"<

cout<<"|"<paipai.huase[0]<<" |"<<" |"<paipai.huase[1]<<" |"<<" |"<paipai.huase[2]<<" |"<

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]paipai.dian shu2[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'

相关文档