- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++课程设计报告
姓名 陈雨润 学号 班级
任课教师 时间
实验题目 扑克牌游戏 评定难易级别 A
实验报告成绩
题目名称:扑克牌游戏
难度等级:A级
课程设计要求:
创建一副扑克 ;增加大小王;删去一张指定的扑克后,余牌显示;扑克牌的洗牌工作。(韩鲁)
进入四人游戏,生成一副新牌,洗牌,分发给四个玩家;建立菜单,分别实现删除某个玩家的一张牌,删除一轮牌,面值排序,花色排序。(陈雨润)
四. 源程序说明及结构流程框图
五.程序设计思想
根据面向类和面向对象的思想,我和韩鲁同学分工协作,各执手“扑克牌游戏”程序的一部分。我负责的主要为整个四人扑克游戏的执行过程,该过程由一个主算法和一个菜单实现,主算法将实现游戏开始前的删牌和余牌显示,而游戏开始后玩家通过提示对菜单中的项目进行选择性操作,从而进行游戏。
1.整个游戏的实现过程:整个游戏实现流程通过主函数int main()实现。可以分为四个部分,一,显示游戏的初始化信息,包括该游戏的名字和制作人等;二,调用主算法DeckMakeDriver()实现删牌和余牌显示;三,创建Deck类对象,通过MakeDeck()成员函数生成一副新牌,通过ShowDeck()成员函数显示这副新牌,通过DeckShuff()成员函数洗牌,此后创建一个玩牌过程类Play_Deck的对象并由该类中PlayCard()成员函数实现将牌分发给四个玩家。四,菜单运行,用一个Switch函数来实现,用“1”“2”“3”“4”分别表示不同的功能,并用循环语句重复该过程,直到以“0”结束游戏。
2.删除某个玩家的一张牌:由class Play_Deck中的成员函数DeleteOne(int row,int column)来实现,其中row为数字0-3,分别表示4个玩家,column表示要删除第几张牌。
3.删除一轮牌:先由For循环依次显示四个玩家剩余的牌,然后依次输入各玩家需要删的是第几张牌,然后重复用class Per_Deck中的成员函数Delete(int n)将各玩家的牌删掉。
4.按面值排序:由class Play_Deck的成员函数SortDeckFace()实现,而SortDeckFace()又可以通过 类Per_Deck的中的面值排序函数SortFace()实现。
5.按花色排序:由class Play_Deck的成员函数SortDeckSuit()实现,而SortDeckSuit()又可以通过 类Per_Deck的中的面值排序函数SortSuit()实现。
六.程序重要功能的实现方法
1. 游戏过程的实现:
1)先定义几个int型变量,其中a用来放置菜单函数的返回值,row表示第几个玩家,col表示第几张牌。srand( (unsigned)time( NULL ) )初始化随机数种子,Program_Init()显示初始化信息。
2)程序主算法的实现:创建一个Deck类对象 deck_1,调用成员函数;MakeDeck()生成牌,调用成员函数ShowDeck()显示牌,调用成员函数DeckShuff(n)洗牌,n表示洗牌次数。用do while语句实现删牌与否的选择,并且至少删牌一次。
do
{
deck_1.Deal_One(); //调用成员函数Deal_One()删除一张牌
cout endlendl;
CenterText(剩下的牌是:);
coutendlendl;
deck_1.ShowDeck();
cout endl endl;
CenterText(输入Y继续删除一张牌;);
coutendlendl;
CenterText(输入N开始四人游戏\n);
cin y;
y = toupper(y);
}while(y = = Y ); //当输入Y的时候循环条件成立,继续删牌
3)生成新牌并洗牌后分发给四个玩家:用一个整型数i表示玩家顺序,建立一个对象数组Per_Deck m_deck[4] ,这样对象m_deck[i]即表示玩家i的牌,调用MakePerDeck()函数给对象m_deck[i]进行初始化。
for(int j=i,k=0;kn;j+=4) //i表示玩家顺序(0-4),k表示玩家牌里的牌数,n 为13即52张牌均分时每个玩家应得牌数。
{
m_Card[k]=d.m_cardarray[j];
您可能关注的文档
- 经济作物测土配方施肥技术百问百答.pdf
- 精细化学品大全-农药卷.pdf
- 卡培他滨合成工艺研究.doc
- 锂电应用基础知识培训考试试题-涂礼斌.doc
- 锂电应用基础知识-涂礼斌.ppt
- 辣椒高产优质栽培.pdf
- 两串电池保护PCB'A统计表.pdf
- 利用Mg含量控制Zn_1_x_Mg_xO薄膜压敏电阻器的阈值电压.pdf
- 两串N并电池PACK组装方案.pdf
- 量測能力檢定(GR&R)介紹-8.ppt
- 南京理工大学《VC++程序设计》C++备课讲义第2章.ppt
- 南京理工大学《VC++程序设计》C++备课讲义第1章.ppt
- 南京理工大学《VC++程序设计》C++备课讲义第3章.ppt
- 南京理工大学《VC++程序设计》C++备课讲义第4章.ppt
- 南京理工大学《VC++程序设计》C++备课讲义第6章.ppt
- 南京理工大学《VC++程序设计》C++备课讲义第7章.ppt
- 南京理工大学《VC++程序设计》C++备课讲义第8章.ppt
- 南京理工大学《VC++程序设计》C++讲义第9章.ppt
- 南京理工大学《VC++程序设计》C++讲义第12章.ppt
- 南京理工大学《VC++程序设计》C++讲义第15章.ppt
原创力文档


文档评论(0)