纸牌游戏―数据结构实训报告.doc

纸牌游戏―数据结构实训报告.doc

ID:55594626

大小:104.00 KB

页数:19页

时间:2020-05-19

纸牌游戏―数据结构实训报告.doc_第1页
纸牌游戏―数据结构实训报告.doc_第2页
纸牌游戏―数据结构实训报告.doc_第3页
纸牌游戏―数据结构实训报告.doc_第4页
纸牌游戏―数据结构实训报告.doc_第5页
资源描述:

《纸牌游戏―数据结构实训报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、目录一、课题目标........................31.1纸牌游戏的简介...........................31.2纸牌游戏的基本要求.......................3二、概要设计及功能的实现.............32.1纸牌游戏的框架图.........................32.2主函数和子函数的框架图...................42.3具体的实现...............................72.3.1类的设计.......................

2、........72.3.2功能的实现.............................72.3.2.A发牌的功能...........................72.3.2.B出牌的功能...........................82.3.2.C二叉排序树的插入的功能..............112.3.2.D二叉树的排序........................122.3.2.E主函数的实现........................12三、调试分析........................15四、实

3、训的经验与心得................184.1经验....................................184.2心得....................................18一、课题目标1.1纸牌游戏的简介创建一副扑克牌,通过用户与电脑的轮流出牌,谁先出完牌,谁就获胜。1.2纸牌游戏的基本要求#这幅扑克牌没有花色(J、Q、K、A、大小王),俩人进行游戏,其中一个为用户,一个为计算机;#每人每轮各发五张牌,各自以这五张牌建立二叉排序树;#游戏由用户先出,轮流出牌,每次只能出一张牌并且要比被别人出的大,

4、如:用户出3,计算机则要出比3打的纸牌,没有则选择不出;#最先出完纸牌的人获胜。一、概要设计及功能的实现2.1纸牌游戏的框架图纸牌游戏主页面游戏结束开始游戏游戏说明开始出牌开始2.2主函数和子函数的框架图定义变量进入while主循环进入对应的选项,选择相应的功能调用相应的函数进入for/if循环否是退出/执行相应的操作实现相应的功能结束子函数框架图出牌的框架图是否结束判断是否用户/电脑还有牌否是用户出牌电脑出牌判断用户的牌书是否大于电脑的牌进入3次for循环开始建立二叉排序树的结束返回一定的值执行相应的语句进入if语句执行相应的语句进入for循环

5、定义变量建立二叉排序树开始2.3具体的实现2.3.1类的设计首先在程序中必须有类,而我的纸牌游戏要求是有纸牌和以纸牌建立二叉排序树,故有两个类:classPlayingCards和classtree2.3.2功能的实现2.3.2.A发牌的功能**实现纸牌游戏发牌(fp)的功能,它的初始条件是该纸牌已存在,操作结果是给用户和电脑每人发5张牌。voidPlayingCards::fp(){intl,e;//临时储存随机牌数intf;for(inti=0;i<5;i++){l=rand()%9+2;//用户得到牌的点数cout<<"发到的牌"<

6、"";f=rand()%4+3;while(card1[l-1][f-3]==1){l=rand()%9+2;f=rand()%4+3;}card1[l-1][f-3]=1;//标记哪些牌被发出b[i]=l;bhuase[i]=f;e=rand()%9+2;//电脑得到牌的点数f=rand()%4+3;while(card1[e-1][f-3]==1){e=rand()%9+2;f=rand()%4+3;}card1[e-1][f-3]=1;//标记哪些牌被发出c[i]=e;chuase[i]=f;}}2.3.2.B出牌的功能**实现纸牌游戏的出

7、牌(cp)功能,它的初始条件是用户和电脑每人手上拥有5张牌,操作结果是由用户先出牌,且后一个人出牌的点数要比前一个人出牌的点数大,谁先出完谁赢。voidPlayingCards::cp(){inte=0;intf=0;intn1=0;intn2=0;//记录牌打出几张for(intm=0;m<5;m++){for(inti=0;i<5;i++){for(intj=0;j<5;j++){if(b[j]>f&&card2[j][0]==0){cout<<"玩家出牌"<

8、(玩家)的第i张牌已经打出e=b[j];Sleep(800);break;}}n1=0;n2=0;for(inti=0;i<5;i++)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。