题目洗扑克牌并发牌给玩家

题目洗扑克牌并发牌给玩家

ID:42366410

大小:202.00 KB

页数:12页

时间:2019-09-13

题目洗扑克牌并发牌给玩家_第1页
题目洗扑克牌并发牌给玩家_第2页
题目洗扑克牌并发牌给玩家_第3页
题目洗扑克牌并发牌给玩家_第4页
题目洗扑克牌并发牌给玩家_第5页
资源描述:

《题目洗扑克牌并发牌给玩家》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目:洗扑克牌并发牌给玩家,最后整理题目分析将54张扑克牌统一编号为:0,1,2,……,52,53,然后随机地从中一一抽取一张牌,并依次放起,形成新的序列。具体还要解决四个问题:·如何存储54张扑克牌;·在此基础上如何随机洗牌;·确定庄家,发牌给各玩家,并将底牌给该庄家;·整理玩家的牌并打印输出。问题分析1.扑克牌的存储在计算机高级语言中,允许用一个名字来命名一组依次存放的同类型数据,并把这样的数据类型称为数组。例如,可以把54张扑克牌用数组pk来存储,pk代表了54个扑克数据的整体,也代表了54个变量。问题

2、分析设想,用三位整数表示每张扑克牌,其中第一位表示牌种类,后两位表示牌号,例如:101,……113,分别表示红桃尖、……红桃K;201,……213,分别表示方块尖、……方块K;301,……313,分别表示梅花尖、……梅花K;401,……413,分别表示黑桃尖、……黑桃K;501,502,分别表示大、小王。于是,54张扑克牌可以用整数表示,存储54张扑克牌的数组pk可以用如下的声明语句建立:intpk[]=newint[54];问题分析数组可以用括在花括弧中的数据序列进行初始化。如数组pk的初始化语句为:int

3、pk[54]={501,502,101,102,103,104,105,106,107,108,109,110,111,112,113,201,202,203,204,205,206,207,208,209,210,211,212,213,301,302,303,304,305,306,307,308,309,310,311,312,313,401,402,403,404,405,406,407,408,409,410,411,412,413};问题分析2.随机洗牌算法501502101…412406012…

4、5253pk下标pk元素值…413…r(a)初始化后的pk数组406502101…412501012…5253pk下标pk元素值…413…r(b)在pk[0]到pk[53]之间找一个随机元素与pk[0]对调413101…41240612…52rpk下标pk元素值…502…4060(c)在pk[1]到pk[53]之间找一个随机元素与pk[1]对调在0到53之间产生一个随机数r=46(r=(int)(Math.random()*53)),将pk[0]与pk[r]交换在1到53之间产生一个随机数r=53(=(int

5、)(Math.random()*(53-1))+1),将pk[1]与pk[r]交换问题分析在i到53之间产生一个随机数r(r==(int)(Math.random()*(53-i))+i),将pk[i]与pk[r]交换;……直到前53张牌被全部交换。问题分析四位玩家分到的牌用二维数组存储:intcard[][]=newint[4][];其中数组的第二维列数不事先定义。问题分析3、确定庄家,并将底牌给该庄家用intp=(int)(Math.random()*4);p=0,则表示坐东的玩家为庄家,将底牌6张给他p

6、=1,则表示坐南的玩家为庄家,将底牌6张给他p=2,则表示坐西的玩家为庄家,将底牌6张给他p=3,则表示坐北的玩家为庄家,将底牌6张给他问题分析确定数组card[0],card[1],card[2],card[3]的长度,代表各玩家手上牌的数量:for(inti=0;i

7、)for(intj=0;j<12;j++){card[i][j]=pk[i*12+j];if(card[i].length==18){for(intk=6;k>0;k--){card[i][18-k]=pk[54-k];}}}问题分析4、整理玩家的牌并打印输出对card[0],card[1],card[2],card[3]的数组元素分别进行从大到小进行排序最后对二维数组card打印输出即为各位玩家手上的牌。注意:用card[i][j]/100判断花色用card[i][j]%100判断牌的大小Questions

8、?

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

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

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