扑克牌小游戏c++代码.docx
- 文档编号:22844997
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:16
- 大小:16.97KB
扑克牌小游戏c++代码.docx
《扑克牌小游戏c++代码.docx》由会员分享,可在线阅读,更多相关《扑克牌小游戏c++代码.docx(16页珍藏版)》请在冰豆网上搜索。
扑克牌小游戏c++代码
#include
#include
#include
#include
#include
#include
classPlaying_Card
{
private:
intm_Value;
charm_Face[3];
charm_Suit;
public:
Playing_Card();
voidshowcard();
voidCard_Make(int);
};
classDeck
{
private:
Playing_Cardm_cardarray[54];
intm_lastdelt;
public:
Deck();
voidMakeDeck();
voidDeal_One();
voidShowDeck();
voidDeckShuff(int);
voidRemove_Card();
voidSenddeck();
};
voidProgram_Init();
intmain();
voidCenter_Text(char[]);
intget_number();
charGet_Key();
voidDeckMakeDriver();
intgetRandInt(intmin,intmax);
voidprog_close();
intmain()
{
srand((unsigned)time(NULL));
intCard_Number=0;
Program_Init();
DeckMakeDriver();
prog_close();//退出
return1;
}
Playing_Card:
:
Playing_Card()
{
inti;
for(i=1;i<=3;)
{
m_Face[i]='';
i++;
}
m_Suit='';
m_Value=0;
}
//*******************************************************************
voidProgram_Init()//显示初始界面
{
Center_Text("C++课程设计实验报告");
cout< Center_Text("扑克牌相关"); cout< Center_Text("设计: 郇志伟"); cout< Center_Text("2006-9-20"); cout< Center_Text("Hitthe cin.get(); } //******************************************************************* charGet_Key() { charx; x=cin.get(); cout< returnx; } voidPlaying_Card: : showcard() { cout<<""; cout< cout.width (1); cout< cout<<""; } //******************************************************************* voidCenter_Text(charShellText[80]) { intlength; intcenter; length=strlen(ShellText); center=(80-length)/2; for(;center! =0;center--) { cputs(""); } cputs(ShellText); } intget_number() { intInput_Integer=0; Center_Text("Pleaseenteranintegerbetween0and53.54toquit."); cout< cin>>Input_Integer; returnInput_Integer; } //******************************************************************* voidPlaying_Card: : Card_Make(intnum) { inti=0; charj; if(num==53) { strcpy(m_Face,"jo"); m_Suit='2'; m_Value=15; } if(num==52) { strcpy(m_Face,"jo"); m_Suit='1'; m_Value=14; } if(num<=51) { intface_num=num%13; switch(face_num) { case0: strcpy(m_Face,"A");break; case9: strcpy(m_Face,"10");break; case10: strcpy(m_Face,"J");break; case11: strcpy(m_Face,"Q");break; case12: strcpy(m_Face,"K");break; default: j=char(face_num+49); if(i<3) { m_Face[i]='';i++; m_Face[i]=j;i++; m_Face[i]=NULL; break; } } if(num<=12)m_Suit=6; if(num>12&&num<=25)m_Suit=3; if(num>25&&num<=38)m_Suit=5; if(num>38&&num<=51)m_Suit=4; if(face_num<=9)m_Value=face_num+1; if(face_num>=10)m_Value=10; } } //******************************************************************* voidDeckMakeDriver() { Deckdeck_1; deck_1.MakeDeck();//创建一副扑克 deck_1.ShowDeck();//显示一副扑克 Get_Key(); deck_1.DeckShuff(250);//洗牌 deck_1.ShowDeck();//显示一副扑克 Get_Key(); deck_1.Senddeck();//依次分发给4个人并显示 Get_Key(); cout< chary; do { deck_1.Deal_One();//删除一张牌 cout< cout< cin>>y; y=toupper(y); }while(y=='Y'); } //******************************************************************* voidDeck: : MakeDeck()//创建一副扑克 { m_lastdelt=53; while(m_lastdelt>-1) { m_cardarray[m_lastdelt].Card_Make(m_lastdelt); m_lastdelt--; } } //******************************************************************* voidDeck: : ShowDeck()//显示一副扑克 { intindex=m_lastdelt+1; intnewline=0; Center_Text("CurrentDeckofCardsfromtoptobottom"); cout< while(index<=53) { if(newline%11==0)cout< m_cardarray[index].showcard(); newline++; index++; } cout< } //******************************************************************* intgetRandInt(intmin,intmax) { intnumToReturn; numToReturn=rand(); numToReturn=numToReturn%(max-min+1)+min; returnnumToReturn; } //******************************************************************* voidDeck: : DeckShuff(inttimes)//洗牌 { intx,split; Center_Text("ShufflingDeck"); cout< for(x=0;x<=times;x++) { split=getRandInt(20,35); Decktopdeck; Deckbottomdeck; inti; intbottomdeckindex=1; inttopdeckindex=1; for(i=0;i<=split-1;) { topdeck.m_cardarray[topdeckindex]=this->m_cardarray[i]; topdeckindex++; i++; } for(i=(split);i<54;) { bottomdeck.m_cardarray[bottomdeckindex]=this->m_cardarray[i]; bottomdeckindex++; i++; } intdeckoutindex=0; intnumcardstomovetop; intnumcardstomovebottom; intj; inth=0; bottomdeckindex=54-split; topdeckindex=split; while(deckoutindex<=53) { numcardstomovetop=getRandInt(2,7); numcardstomovebottom=getRandInt(2,7); for(j=0;j<=numcardstomovebottom;j++) { if(bottomdeckindex>0) { this->m_cardarray[deckoutindex]=bottomdeck.m_cardarray[bottomdeckindex]; deckoutindex++; bottomdeckindex--; } for(h=0;h<=numcardstomovetop;h++) { if((topdeckindex>0)&&(deckoutindex<=54)) { this->m_cardarray[deckoutindex]=topdeck.m_cardarray[topdeckindex]; deckoutindex++; topdeckindex--; } } } } } this->m_lastdelt=-1; } //******************************************************************* voidDeck: : Senddeck()//依次分发给4个人并显示 { intm_player,n_player; intplayer1=0,player2=0,player3=0,player4=0; this->m_lastdelt=53; Playing_Cardplayeri[2][14]; Playing_Cardplayerj[2][13]; inttime=0; while(time<13) { m_player=0,n_player=0; playeri[m_player][player1]=this->m_cardarray[m_lastdelt]; m_player++;player1++;m_lastdelt--; playeri[m_player][player2]=this->m_cardarray[m_lastdelt]; player2++;m_lastdelt--; playerj[n_player][player3]=this->m_cardarray[m_lastdelt]; n_player++;player3++;m_lastdelt--; playerj[n_player][player4]=this->m_cardarray[m_lastdelt]; player4++;m_lastdelt--; time++; } playeri[0][13]=this->m_cardarray[1]; playeri[1][13]=this->m_cardarray[0]; for(inti=0;i<=3;i++) { cout<<"player"< "; if(i<=1) { for(intj=0;j<=13;j++) { playeri[i][j].showcard(); } } else { for(intj=0;j<=12;j++) { playerj[i-2][j].showcard(); } } cout<<'\n'; } } //******************************************************************* voidprog_close()//退出 { cout< cout<<"Hitthe cout< Get_Key(); cin.get(); } //******************************************************************* voidDeck: : Remove_Card()//删除一张牌。 { m_cardarray[m_lastdelt]=Playing_Card(); } intk=53,j=0; //******************************************************************* voidDeck: : Deal_One() { j++; inti=0; intcardnum1,cardnum2; intnum=1; if(k<0) cout<<"OutofrangeError"; else { m_lastdelt=getRandInt(0,k); cardnum1=m_lastdelt; cardnum2=m_lastdelt; Deckdeck1; cout<<"carddelt"; m_cardarray[m_lastdelt].showcard(); cout<<'\n'; cardnum2++; while(cardnum2<54) { deck1.m_cardarray[i]=this->m_cardarray[cardnum2]; i++;cardnum2++; } i=0; while(cardnum1+j<54) { this->m_cardarray[cardnum1]=deck1.m_cardarray[i]; cardnum1++;i++; } i=0; cout<<"cardleft"<<'\n'; while(i+j<54) { this->m_cardarray[i].showcard(); if(num%11==0)cout<<'\n'; num++;i++; } } k--; } //******************************************************************* Deck: : Deck() { intlastdelt=0; inti; for(i=0;i<=53;i++) { m_cardarray[1]=Playing_Card(); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扑克牌 小游戏 c+ 代码