南京理工大学C++课程设计扑克游戏复习进程Word格式文档下载.docx
《南京理工大学C++课程设计扑克游戏复习进程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《南京理工大学C++课程设计扑克游戏复习进程Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
![南京理工大学C++课程设计扑克游戏复习进程Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/14/93f54beb-03dd-4ede-a316-540c66c803ba/93f54beb-03dd-4ede-a316-540c66c803ba1.gif)
Playing_Cardm_Card[20];
//最多有20张牌
intnNum;
//实际张数
Per_Deck();
//构造函数
voidMakePerDeck(Deck&
int,int);
//对象初始化
voidShow();
//显示
voidSortFace();
//按面值排序
voidSortSuit();
//按花色排序
intDelete(intn);
//删除牌号为n的那张
};
//**************************四个人玩牌的过程*******************
classPlay_Deck
Per_Deckm_deck[4];
//一共是四个人玩牌
Play_Deck();
voidPlayCard(Deck&
);
//用指定的那副牌对四个人分别赋值
intDeleteOne(introw,intcolumn);
//删除参数为第row个人的第column张牌
voidSortDeckFace();
//对整副牌面值排序
voidSortDeckSuit();
//对整副牌花色排序
ints(inta);
//用于调用私有数据来显示排序后的牌
4.添加人性化界面,初始运行程序时加了一个友好的界面,用p,u,k,e这四个字母拼成了中文的”扑克”二字,增加游戏的趣味性,并附带输出了自己的姓名和学号。
5.在主函数中调用DeckMakeDriver()函数,通过DeckMakeDriver()中的一个do循环控制主菜单的循环出现,并对可能出现的玩家输入问题进行分析修改。
5.进入四个不同功能的游戏界面时,操作后询问是否显示被操作后的牌,再询问是否返回主菜单,否的话退出游戏。
6.在对玩家的牌的面值以及花色排序时,在类PlayDeck()中增加ints()函数,用于调用私有数据来显示排序完后的牌。
四、源程序结构流程框图与说明
五.源程序代码以及草稿原件
#include<
iostream.h>
string.h>
conio.h>
stdlib.h>
stdio.h>
time.h>
voidProgram_Init();
intmain();
voidCenter_Text(char[]);
intget_number();
charGet_Key();
voidDeckMakeDriver();
intgetRandInt(intmin,intmax);
voidprog_close();
classPerDeck;
//增加
classPlaying_Card
private:
intm_Value;
charm_Face[3];
charm_Suit;
Playing_Card();
voidshowcard();
voidCard_Make(int);
friendclassPerDeck;
//增加
classDeck
Playing_Cardm_cardarray[54];
//
intm_lastdelt;
Deck();
voidMakeDeck();
voidDeal_One();
voidShowDeck();
voidDeckShuff(int);
voidRemove_Card();
classPerDeck//增加PerDeck
Playing_CardmCard[20];
PerDeck(){}
voidMakePerDeck(Deck&
int);
//end
classPlayDeck//增加PlayDeck
PerDeckmDeck[4];
PlayDeck(){}
voidPlayCard(Deck&
intDeleteAll(int,int,int,int);
voidSortDeckFace(int);
voidSortDeckSuit(int);
voids(int);
voidPerDeck:
:
MakePerDeck(Deck&
d,inta)//PerDeck成员的函数
nNum=a;
inti=0;
while(i<
a&
&
d.m_lastdelt!
=53)
mCard[i++]=d.m_cardarray[++d.m_lastdelt];
}
Show()
intnNewLine=0;
Center_Text("
此玩家的牌:
"
cout<
<
endl;
while(nNewLine<
nNum)
{
if(nNewLine%5==0)cout<
mCard[nNewLine++].showcard();
}
SortFace()
Playing_Cardk;
for(inti=0;
i<
nNum;
i++)
for(intj=0;
j<
nNum-i-1;
j++)
if(mCard[j].m_Value>
mCard[j+1].m_Value)
{
k=mCard[j];
mCard[j]=mCard[j+1];
mCard[j+1]=k;
}
SortSuit()
for(intj=0;
if(mCard[j].m_Suit>
mCard[j+1].m_Suit)
mCard[j]=mCard[j+1];
intPerDeck:
Delete(intn)
if(n>
cout<
超出这副牌张数"
returnnNum;
else
cout.width(5);
删除牌:
;
mCard[n-1].showcard();
while(n-1<
mCard[n-1]=mCard[n++];
return--nNum;
}//end
voidPlayDeck:
PlayCard(Deck&
k)//PlayDeck的成员函数
inta,b,c,d;
请依次输入给四位玩家的牌数(总张数小于等于54)。
cin>
>
a>
b>
c>
d;
if(a+b+c+d>
54)
Center_Text("
张数超过牌的张数,退出游戏。
exit(0);
mDeck[0].MakePerDeck(k,a);
mDeck[1].MakePerDeck(k,b);
mDeck[2].MakePerDeck(k,c);
mDeck[3].MakePerDeck(k,d);
玩家1"
mDeck[0].Show();
玩家2"
mDeck[1].Show();
玩家3"
mDeck[2].Show();
玩家4"
mDeck[3].Show();
intPlayDeck:
DeleteOne(introw,intcolumn)
mDeck[row-1].Delete(column);
return1;
DeleteAll(inta,intb,intc,intd)
mDeck[0].Delete(a);
mDeck[1].Delete(b);
mDeck[2].Delete(c);
mDeck[3].Delete(d);
}
SortDeckFace(intb)
mDeck[b-1].SortFace();
SortDeckSuit(intb)
mDeck[b-1].SortSuit();
s(inta)
mDeck[a-1].Show();
}//endl
intmain()
srand((unsigned)time(