斗地主洗牌发牌报告(c语言)

斗地主洗牌发牌报告(c语言)

ID:28047441

大小:245.50 KB

页数:8页

时间:2018-12-07

斗地主洗牌发牌报告(c语言)_第1页
斗地主洗牌发牌报告(c语言)_第2页
斗地主洗牌发牌报告(c语言)_第3页
斗地主洗牌发牌报告(c语言)_第4页
斗地主洗牌发牌报告(c语言)_第5页
资源描述:

《斗地主洗牌发牌报告(c语言)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据结构作业报告——斗地主洗牌发牌报告姓名:飞哥班级:11316班学号:11314658上机时间:2010_9-9报告时间.•2010-9-13摘要1.实验目的编斗地主洗发牌的程序可以让我们了解随机数的生成,全局变量和指针的用法,熟悉线性表的基本操作,以及排序的基本思路和方法。2.实验方法本程序主要是利用全局变量来统筹整个程序,辅之的是指针变量。总共有三个子函数,分别为洗牌子函数,排序子函数,发牌子函数。洗牌这个子函数利用了随机数的生成,而主函数通过指针变量把生成的随机数赋值给全局变量,再通过冒泡排序法对全局变量进行排

2、序,最后按编号换算进行输出。3.实验结果由运行出来的结來可以看出,此洗牌发牌符合斗地主的规则,是合法的。随机发的牌没冇重复,没冇遗漏,且按照斗地主的牌的人小进行排列,即从小到人分别为:3,4,5,6,7,8,9,10,J,Q,K,A,2,小鬼,大鬼。所以此程序是正确的,成功的。内容一.问题重述设计一个程序生成一副总共M张的牌,来给三个玩家发牌,发给每位玩家17张牌,剩下三张作为底牌。每次发出的牌都不一样,而且按从小到大的顺序妞示每个玩家拿到的牌和底牌。二.算法描述木程序除了运用一些条件语川,判断语句之外,主要运用了两个

3、算法,一个是随机数的生成,一个是冒泡排序法。随机数的生成的复杂度为0(N),其屮N=54,这是在运行结果最徒的状况下才会出现的,一旦生成的随机数相同的话,通过if语句会重新生成随机数,直到生成不同的随机数。冒泡排序法的空问复杂度为0(1),时问复杂度为0(N2),本程序中的N为54,而且运行了两次冒泡排序法,分别为牌数和花色进行排序,所以空间复杂度为2X0(1),吋间复杂度为2X0(542)。一.变量说明a[17],b[17],c[17],d[3]为全局变量的数组,分别存放玩家一,二,三的牌,以及三个底牌。函数与思路说

4、明本程序总共宥3个子函数,1个主函数,其中3个子函数分别为XipaiO子函数,PaxuOi^函数,FapaiOi^函数。Xipai()这个子函数利用丫srand(time(O)),rand()来生成随机数1到54。当然,为了使生成的数都不一样,还使用if的判断语句。主函数把洗牌得到的54位随机数分成四组数组赋值到全局变量a[17],b[17],c[17],d[17]当中去,然;G通过Pa.xu(),Fapai()这两个了•函数来进行排序输出。数组屮的数为1到54的随机排列,而Paxil()子函数首先把1到52的数对应化

5、成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的数进行从小到大的排序,而最初的全局变量的数组也跟着排序,最后也是用0泡排序法对相同牌数的花色进行从小到大的排序,即方块,梅花,红桃,黑桃。Eapai0这个子函数就是把排号序的数进行换算输出。其换算输出如下:12345

6、678910111213方块方块方块方块方块方块方块方块方块方块方块方块方块A2345678910JQK1415•••23242526•蠡蠡40525354梅花梅花參參參梅花梅花梅花梅花••e红桃黑桃小鬼大鬼210JQKAK五.程序执行结果1.第一次运行结果:第一位的牌是:梅花3黑桃7红桃3红桃10方块4方块J黑桃4梅花Q方块5梅花K红桃5黑桃K黑桃5方块2方块7黑桃2红桃7第二位的牌是:方块3梅花4红桃4方块6黑桃6梅花8红桃9黑桃9方块10黑桃10红桃J黑桃J方块K方块A黑桃A红桃2小鬼第三位的牌是:黑桃3梅花6红

7、桃6梅花7方块8黑桃8梅花9梅花10梅花J方块Q红桃Q黑桃Q红桃K梅花A红桃A梅花2大鬼底牌是:梅花5红桃8方块92.第二次运行结果:第一位的牌是:梅花5黑桃J红桃5方块6梅花6方块A方块7红桃A红桃7梅花2红桃10红桃3梅花J方块4红桃J梅花Q红桃K第二位的牌是:方块3红桃4黑桃4黑桃6梅花7红桃8方块9梅花9红桃9黑桃9方块10梅花10方块J红桃Q黑桃A红桃2大鬼第三位的牌是:黑桃3梅花4方块5黑桃5红桃6黑桃7方块8梅花8黑桃10方块Q黑桃Q方块K梅花K黑桃K梅花A方块2黑桃2底牌是:梅花3黑桃8小鬼3.第三次运

8、行结果:第一位的牌是:梅花3红桃3黑桃4红桃5梅花6梅花7红桃7黑桃7梅花8红桃8红桃10方块J黑桃J梅花K梅花A梅花2大鬼第二位的牌是:方块3方块4方块5梅花5黑桃5黑桃6方块7方块8方块9黑桃10红桃J方块Q红桃Q黑桃Q方块A红桃A方块2第三位的牌是:黑桃3梅花4方块6红桃6黑桃8梅花9黑桃9方块10梅花J梅花Q方块K底牌是:

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

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

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