数据结构扑克牌发牌问题

数据结构扑克牌发牌问题

ID:47933599

大小:67.00 KB

页数:8页

时间:2019-11-06

数据结构扑克牌发牌问题_第1页
数据结构扑克牌发牌问题_第2页
数据结构扑克牌发牌问题_第3页
数据结构扑克牌发牌问题_第4页
数据结构扑克牌发牌问题_第5页
资源描述:

《数据结构扑克牌发牌问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、内容:问题重述:设计一个四个人玩的纸牌游戏的程序,一共有五十四张牌,要发给四个人,并且每次发出的牌都不一样。并且符合纸牌的规则(可以是桥牌、升级、红四、斗地主等,但是必须说明规则)。并且程序能按照设定的游戏规则从小到大进行排序,如果有底牌的话要说明底牌的情况。最后要验证每次发牌是否合法。该程序纸牌的玩法:在一副牌中,去除大小王,然后2最大其次是A,然后按顺序从大到小一次减小。所用到的具体算法:冒泡法,线性表删除元素操作;具体做法为:先将一副扑克牌中的大小王拿掉,还会剩下52张牌,在进行随机的洗牌,将所有的排顺序打乱,然后在打乱后一定的顺序情况下,按照规则

2、平均分发给四个人,每人会得到十三张牌,最后将每人手里的牌按照3、4、5、6、7、8、9、10、J、Q、K、A、2的顺序进行排列,在排列过程中会出现花色的前后顺序排列。再将四个人手里的拍验证,检验是否每张牌是否都出现并且只出现一次。如果出现并且只出现一次,说明程序成功,否则程序失败,则需要重新进行程序的检验,修改。流程图大致情况:设计的结构体变量说明:charCardColor是存储花色的变量charCardNumber[2]是存储扑克牌的面值变量intflag;//判断标志structpukepaiCard[52]用char类型存储52张扑克牌intca

3、rd[52]用int类型形式并且,我们在一开始定义每张牌的变量每张牌现在我们给予赋值,例如108代表方块8,212代表红桃Q,其中三位数中第一为代表花色:1代表方块,2代表红桃,3代表梅花,4代表黑桃。01代表A,02代表2,依次类推,11代表J,12代表Q,13代表K。具体的函数说明均在程序中标注,不再重复说明。程序执行结果为:1.2.3.结论:通过以上多次程序运行,满足了多次结果不相同,并保证每次都会有所有的排出现且仅出现一次。遇到的问题:对一些代码的含义不太清楚,用起来不太熟练。解决方法是,通过学习书上的知识,了解代码含义,多训练慢慢熟练。附录运行

4、程序为:#include#include#include#include//**********************************************************//这是一个模仿五十K的发牌游戏//定义一个结构体,然后定义一个该结构体的数组Card[52](大写的),存储扑克牌(这个存储的是字符串)//定义一个int类型的card[52](小写的),来表示扑克牌,比如105,1代表花色(方块),05代表面值5//再比如313,就是梅花K,401就是黑桃

5、A(ASCII表中3,4,5,6分别表示红桃,方块,梅花,黑桃。将他们减去2就代表百位的数值)//再说一下排序,就是设置一个标志位,标识牌的面值的大小3->0,4->1,5->2,......,J->8,Q->9,K->10,A->11,2->12//然后就是card[52]排序,再转换一下到结构体数组Card[52]就行了.//**********************************************************//定义结构体,存储扑克牌structpukepai{charCardColor;//存储花色charCardN

6、umber[2];//存储扑克牌的面值intflag;//判断标志,如果按照card[52]排序,那么牌由小到大就是:A,2,3,4,5,6,7,8,9,10,J,Q,K//而我们需要由小到大排序是:3,4,5,6,7,8,9,10,J,Q,K,A,2};structpukepaiCard[52];//用char类型存储52张扑克牌intcard[52];//用int类型形式//*************************************************//洗牌函数:将牌打乱voidxipai(){inti,j,k,temp;sra

7、nd(time(0));for(i=0;i<4;i++)for(j=0;j<13;j++)card[i*13+j]=(i+1)*100+j+1;//printf("howmanytimesforcard:");//scanf("%d",&count);//for(j=1;j<=count;j++)//洗牌for(i=0;i<52;i++){k=rand()%(51-i+1)+i;temp=card[i];card[i]=card[k];card[k]=temp;}printf("");}//******************************

8、*******************//转换函数:card[52]->Card

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

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

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