扑克牌游戏C++程序实现.docx
- 文档编号:4271838
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:13
- 大小:16.90KB
扑克牌游戏C++程序实现.docx
《扑克牌游戏C++程序实现.docx》由会员分享,可在线阅读,更多相关《扑克牌游戏C++程序实现.docx(13页珍藏版)》请在冰豆网上搜索。
扑克牌游戏C++程序实现
本文想详细给出了扑克牌的C++程序并实现
我们常玩的就是没人三张牌比大小,规则是同花顺最大,一次是炸弹、顺子、同花、对子、单张。
单张A最大,以下是C++程序:
//DeckOfCards.h
#ifndefDECKOFCARDS_H
#defineDECKOFCARDS_H
classDeckOfCards
{
public:
DeckOfCards();
voiddeal();
voidshullfe();
voidgetValue();//计算得分
intgetsameColour();//同花
intgetStraigh();//顺子
intgetStraightAndColoursOrNot();//同花顺或非同花非顺子
intgetPairOrsameValue();//对子或炸弹
voidoutput();
private:
intDeck[4][13];
intcolourA;
intcolourB;
intcolourC;
intcolourD;
};
#endif
//DeckOfCards.cpp
//½ÌѵֻҪ²»ÊÇvoidÀàÐͺ¯Êý±ØÐëÓзµ»ØÖµ£¬×¢Ò⣺intÀàÐÍĬÈÏ·µ»ØֵΪ1
#include
usingstd:
:
cout;
usingstd:
:
endl;
usingstd:
:
left;
usingstd:
:
right;
#include
usingstd:
:
setw;
#include
//usingstd:
:
rand;
//usingstd:
:
srand;
#include
//usingstd:
:
time;
#include"DeckOfCards.h"
staticintget[2][3]={0};
staticintnumber=0;
staticintstraigh=0;
staticintsameColour=0;
staticintgetScore[2]={0,0};
staticintsameValue=0;
DeckOfCards:
:
DeckOfCards()
{
for(introw=0;row<4;row++)
{
for(intcolumn=0;column<13;column++)
{
Deck[row][column]=0;
}
}
/*
staticintget[2][3];
for(inti=0;i<2;i++)
{
for(intj=0;j<3;j++)
{
get[i][j]=0;
}
}
*/
for(intj=0;j<=1;j++)
{
getScore[j]=0;
}
srand(time(0));
}
voidDeckOfCards:
:
shullfe()
{
introw;
intcolumn;
for(intcard=1;card<=52;card++)
{
do
{
row=rand()%4;
column=rand()%13;
}while(Deck[row][column]!
=0);
Deck[row][column]=card;
}
}
voidDeckOfCards:
:
deal()
{
staticconstintface[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};
staticconstchar*suit[4]={"A","B","C","D"};
number=0;
for(inti=0;i<=1;i++)
{
intcount=0;
colourA=0;
colourB=0;
colourC=0;
colourD=0;
if(i==0)
cout<<"PlayerA:
"< else cout<<"PlayerB: "< for(intcard=1+i*3;card<=3+i*3;card++) { for(introw=0;row<4;row++) { for(intcolumn=0;column<13;column++) { if(Deck[row][column]==card) { cout<<""; cout< <<((card%3==0)? '\n': '\t'); get[i][count]=face[column]; count++; switch(*suit[row]) { case'A': colourA++; break; case'B': colourB++; break; case'C': colourC++; break; case'D': colourD++; break; } } } } } cout< cout<<""<<"colourA="< cout<<""<<"colourB="< cout<<""<<"colourC="< cout<<""<<"colourD="< cout< getValue(); number++; } //cout< output(); } voidDeckOfCards: : getValue()//¼ÆËãµÃ·Ö { getScore[number]+=getStraigh();//˳×Ó getScore[number]+=getsameColour();//ͬ»¨ getScore[number]+=getStraightAndColoursOrNot();//ͬ»¨Ë³»ò·Çͬ»¨·Ç˳×Ó getScore[number]+=getPairOrsameValue();//¶Ô×Ó»òÕ¨µ¯ cout<<""<<"getScore"< cout<<"getStraigh()="< cout<<"getsameColour()="< cout<<"getStraightAndColoursOrNot()="< cout<<"getPairOrsameValue()="< } intDeckOfCards: : getStraigh()//ÊÇ·ñΪ˳×Ó { intt; for(inti=0;i<=1;i++) for(intj=0;j<=1-i;j++) { if(get[number][j]>get[number][j+1])// { t=get[number][j]; get[number][j]=get[number][j+1]; get[number][j+1]=t; } } for(intm=0;m<=2;m++) { cout<<""< } cout< if((get[number][2]-get[number][1])==1&&(get[number][1]-get[number][0])==1) { straigh=1; cout<<"straigh="< return0; } elseif(get[number][0]==1&&get[number][1]==12&&get[number][2]==13) { straigh=1; cout<<"straigh"< return0; } else return0; } intDeckOfCards: : getsameColour()//ÊÇ·ñΪͬ»¨ { inta=colourA+1; intb=colourB+1; intc=colourC+1; intd=colourD+1; if((a*b*c*d)==4&&get[number][0]==1) { sameColour=1; cout<<"sameColour="< return0; } elseif((a*b*c*d)==4&&get[number][0]! =1) { sameColour=1; cout<<"sameColour"< return0; } else return0; } intDeckOfCards: : getStraightAndColoursOrNot()//ͬ»¨Ë³»òͬ»¨»ò˳×Ó { if((sameColour+straigh==2)&&(get[number][0]==1&&get[number][1]==12&&get[number][2]==13))//×î´óµÄͬ»¨Ë³12·Ö { cout<<"ThelargestStraightAndColourssameColourstraigh"< return12; } elseif((sameColour+straigh==2)&&(get[number][2]-get[number][0]==2))//ͬ»¨Ë³11·Ö { cout<<"StraightAndColours,notthelargestonesameColourstraigh"< return11; } elseif((sameColour==1)&&get[number][0]==1)//ͬ»¨ÓÐA²»Ë³6·Ö { cout<<"OnlyhavethesamecoloursameColour"< return6; } elseif((sameColour==1)&&get[number][0]! =1)//ͬ»¨ÎÞA²»Ë³5·Ö { cout<<"OnlyhavethesamecoloursameColourNOA"< return5; } elseif((straigh==1)&&(get[number][0]==1&&get[number][1]==12&&get[number][2]==13))//×î´óµÄ˳×Ó·Çͬ»¨8·Ö { cout<<"Thelargeststraigh,nothavethesamecolourstraigh"< return8; } elseif((straigh==1)&&(get[number][2]-get[number][0]==2))//ÆÕͨµÄ˳×Ó·Çͬ»¨7·Ö { cout<<"Theusuallystraigh,nothavethesamecolourstraighNOT11213"< return7; } else return0; } intDeckOfCards: : getPairOrsameValue()//¶Ô×Ó»òÕ¨µ¯ { if(get[number][0]==get[number][1]&&get[number][0]==get[number][2]&&get[number][1]==1)//ÈýÕÅAAAAµÄ10·Ö { cout<<"Thethreecardshavethesamevalue"< sameValue=1; return10; } elseif(get[number][0]==get[number][1]&&get[number][0]==get[number][2]&&get[number][1]! =1)//ÈýÕÅÏàͬ²»ÊÇAAA9·Ö { cout<<"Thethreecardshavethesamevalue,notAAA"< sameValue=1; return9; } elseif((get[number][0]==get[number][1]||get[number][1]==get[number][2])&&get[number][1]==1)//×î´óµÄ¶Ô×ÓAA4·Ö { cout<<"Thelargestpair: AA"< return4; } elseif((get[number][0]==get[number][1]||get[number][1]==get[number][2])&&get[number][1]! =1)//ÆÕͨµÄ¶Ô×Ó·ÇAA3·Ö { cout<<"Pair,notthelargest,NOTAA"< return3; } elseif((sameColour+straigh==0)&&get[number][0]==1)//Ö»ÓÐÒ»¸öA2·Ö { cout<<"Bad,nottheworest,onlyhaveaA"< return2; } elseif((sameColour+straigh==0)&&get[number][0]! =1)//ûÓÐA1·Ö { cout<<"Bad,maybetheworest,nothaveA"< return1; } else return0; } voidDeckOfCards: : output() { if(getScore[0]>getScore[1]) cout<<"PlayerAWinthegame"< elseif(getScore[0] cout<<"PlayerBWinthegame"< //Ôڵ÷ÖÏàͬµÄÇé¿öϲ»¿ÉÄܶ¼µÃ10·Ö elseif(getScore[0]==getScore[1]&&(getScore[0]==1||getScore[0]==5))//ͬ»¨»ò·Çͬ»¨×î´óµÄ¶¼²»ÊÇA { if(get[0][2]>get[1][2]) cout<<"PlayerAWinthegame"< elseif(get[0][2] cout<<"PlayerBWinthegame"< elseif(get[0][1]>get[1][1]) cout<<"PlayerAWinthegame"< elseif(get[0][1] cout<<"PlayerBWinthegame"< elseif(get[0][0]>get[1][0]) cout<<"PlayerAWinthegame"< elseif(get[0][0] cout<<"PlayerBWinthegame"< else cout<<"AandBareEQUAL"< } elseif(getScore[0]==getScore[1]&&(getScore[0]==2||getScore[0]==6))//ͬ»¨»ò·Çͬ»¨¶¼ÓÐÒ»ÕÅA { if(get[0][1]>get[1][1]) cout<<"PlayerAWinthegame"< elseif(get[0][1] cout<<"PlayerBWinthegame"< elseif(get[0][0]>get[1][0]) cout<<"PlayerAWinthegame"< elseif(get[0][0] cout<<"PlayerBWinthegame"< else cout<<"AandBareEQUAL"< } elseif(getScore[0]==getScore[1]&&getScore[0]==3)//¶¼ÓÐÒ»¶Ôµ«²»ÊÇAA { if(get[0][1]>get[1][1]) cout<<"PlayerAWinthegame"< elseif(get[0][1] cout<<"PlayerBWinthegame"< elseif((get[0][0]+get[0][1]+get[0][2])>(get[1][0]+get[1][1]+get[1][2])) cout<<"PlayerAWinthegame"< elseif((get[0][0]+get[0][1]+get[0][2])<(get[1][0]+get[1][1]+get[1][2])) cout<<"PlayerBWinthegame"< else cout<<"AandBareEQUAL"< } elseif(getScore[0]==getScore[1]&&getScore[0]==4)//¶¼ÓÐÒ»¶ÔAA { if((get[0][0]+get[0][1]+get[0][2])>(get[1][0]+get[1][1]+get[1][2])) cout<<"PlayerAWinthegame"< elseif((get[0][0]+get[0][1]+get[0][2])<(get[1][0]+get[1][1]+get[1][2])) cout<<"PlayerBWinthegame"< else cout<<"AandBareEQUAL"< } elseif(getScore[0]==getScore[1]&&(getScore[0]==7||getScore[0]==8//¶¼ÊÇ˳×Ó ||getScore[0]==11||getScore[0]==12)) { if((get[0][0]+get[0][1]+get[0][2]==26)&&(get[1][0]+get[1][1]+get[1][2]! =26)) cout<<"PlayerAWinthegame"< elseif((get[0][0]+get[0][1]+get[0][2]! =26)&&(get[1][0]+get[1][1]+get[1][2]==26)) cout<<"PlayerBWinthegame"< elseif((get[0][0]+get[0][1]+get[0][2]==26)&&(get[1][0]+get[1][1]+get[1][2]==26)) cout<<"AandBareEQUAL"< elseif((get[0][0]+get[0][1]+get[0][2])>(get[1][0]+get[1][1]+get[1][2])) cout<<"PlayerAWinthegame"< elseif((get[0][0]+get[0][1]+get[0][2])<(get[1][0]+get[1][1]+get[1][2])) cout<<"PlayerBWinthegame"< else cout<<"AandBareEQUAL"< } elseif((getScore[0]==getScore[1])&&(getScore[0]==9))//¶¼ÊÇÈýÕÅÏàͬ { if(get[0][0]>get[1][0]) cout<<"PlayerAWinthegame"< elseif(get[0][0] cout<<"PlayerBWinthegame"< else cout<<"AandBareEQUAL"< } } //main.cpp #include"DeckOfCards.h" intmain() { DeckOfCard
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扑克牌 游戏 C+ 程序 实现