- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构作业报告
——斗地主洗牌发牌报告
摘要
1.实验目的
编斗地主洗发牌的程序可以让我们了解随机数的生成,全局变量和指针的用法,熟悉线性表的基本操作,以及排序的基本思路和方法。
2.实验方法
本程序主要是利用全局变量来统筹整个程序,辅之的是指针变量。总共有三个子函数,分别为洗牌子函数,排序子函数,发牌子函数。洗牌这个子函数利用了随机数的生成,而主函数通过指针变量把生成的随机数赋值给全局变量,再通过冒泡排序法对全局变量进行排序,最后按编号换算进行输出。
3.实验结果
由运行出来的结果可以看出,此洗牌发牌符合斗地主的规则,是合法的。随机发的牌没有重复,没有遗漏,且按照斗地主的牌的大小进行排列,即从小到大分别为:3,4,5,6,7,8,9,10,J,Q,K,A,2,小鬼,大鬼。所以此程序是正确的,成功的。
内容
一.问题重述
设计一个程序生成一副总共54张的牌,来给三个玩家发牌,发给每位玩家17张牌,剩下三张作为底牌。每次发出的牌都不一样,而且按从小到大的顺序显示每个玩家拿到的牌和底牌。
二.算法描述
本程序除了运用一些条件语句,判断语句之外,主要运用了两个算法,一个是随机数的生成,一个是冒泡排序法。
随机数的生成的复杂度为O(N),其中N=54,这是在运行结果最佳的状况下才会出现的,一旦生成的随机数相同的话,通过if语句会重新生成随机数,直到生成不同的随机数。
冒泡排序法的空间复杂度为O(1),时间复杂度为O(N2),本程序中的N为54,而且运行了两次冒泡排序法,分别为牌数和花色进行排序,所以空间复杂度为2×O(1),时间复杂度为2×O(542)。
三.变量说明
a[17],b[17],c[17],d[3]为全局变量的数组,分别存放玩家一,二,三的牌,以及三个底牌。
四.函数与思路说明
本程序总共有3个子函数,1个主函数,其中3个子函数分别为Xipai()子函数,Paxu()子函数,Fapai()子函数。
Xipai()这个子函数利用了srand(time(0)),rand()来生成随机数1到54。当然,为了使生成的数都不一样,还使用if的判断语句。
主函数把洗牌得到的54位随机数分成四组数组赋值到全局变量a[17],b[17],c[17],d[17]当中去,然后通过Paxu(),Fapai()这两个子函数来进行排序输出。
数组中的数为1到54的随机排列,而Paxu()子函数首先把1到52的数对应化成1到13的数,即是1到13对应化成1到13;14到26对应化成1到13;如此类推……而53,54就对应化成16,17。然后把已经化成1,2的数再对应化成14,15的数,其化法如下:3 → 3 → 3;26 → 13 → 13;14 → 1 → 14;28 →2
→ 15;53 → 16……然后用冒泡排序法对变化后的3到17的数进行从小到大的排序,而最初的全局变量的数组也跟着排序,最后也是用冒泡排序法对相同牌数的花色进行从小到大的排序,即方块,梅花,红桃,黑桃。
Fapai()这个子函数就是把排号序的数进行换算输出。其换算输出如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 方块A 方块2 方块3 方块4 方块5 方块6 方块7 方块8 方块9 方块10 方块J 方块Q 方块K
14 15 … 23 24 25 26 … 40 … 52 53 54 梅花A 梅花2 … 梅花10 梅花J 梅花Q 梅花K … 红桃A … 黑桃K 小鬼 大鬼
五.程序执行结果
1.第一次运行结果:
第一位的牌是:
梅花3 红桃3 方块4 黑桃4 方块5 红桃5 黑桃5 方块7 红桃7
黑桃7 红桃10 方块J 梅花Q 梅花K 黑桃K 方块2 黑桃2
第二位的牌是:
方块3 梅花4 红桃4 方块6 黑桃6 梅花8 红桃9 黑桃9 方块10
黑桃10 红桃J 黑桃J 方块K 方块A 黑桃A 红桃2 小鬼
第三位的牌是:
黑桃3 梅花6 红桃6 梅花7 方块8 黑桃8 梅花9 梅花10 梅花J
方块Q 红桃Q 黑桃Q 红桃K 梅花A 红桃A 梅花2 大鬼
底牌是:
梅花5 红桃8 方块9
2.第二次运行结果:
第一位的牌是:
红桃3 方块4 梅花5 红桃5 方块6 梅花6 方块7 红桃7 红桃10
梅花J 红桃J 黑桃J 梅花Q 红桃K 方块A 红桃A 梅花2
第二位的牌是:
方块3 红桃4 黑桃4 黑桃6 梅花7 红桃8 方块9 梅花9 红桃9
黑桃9 方块10 梅花10 方块J 红桃Q 黑桃A 红桃2 大鬼
第三位的牌是:
黑桃3 梅花4 方块5 黑桃5 红桃6
您可能关注的文档
最近下载
- 部编人教版六年级上册道德与法治《6.人大代表为人民》教案教学设计(3课时).pdf VIP
- 灯具安装施工方案范本.pdf VIP
- 工程全过程造价咨询服务方案.pdf VIP
- 抖音电商达人LV1-LV2等级提升测试考试答案&电商达人LV2-LV3等级提升试卷题库.docx VIP
- 企业薪酬管理基础知识讲解(powerpoint 118页).ppt
- 2025年江苏省镇江市辅警协警笔试笔试真题(附答案).docx VIP
- 县中医院度工作目标及绩效工资分配方案.docx VIP
- 金属压铸机的plc控制.pdf VIP
- 20S515 钢筋混凝土及砖砌排水检查井.docx VIP
- 2025年人力资源年终工作汇报.pptx
原创力文档


文档评论(0)