收藏 分销(赏)

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

上传人:pc****0 文档编号:13352838 上传时间:2026-03-06 格式:PPT 页数:12 大小:202KB 下载积分:10 金币
下载 相关 举报
题目洗扑克牌并发牌给玩家.ppt_第1页
第1页 / 共12页
题目洗扑克牌并发牌给玩家.ppt_第2页
第2页 / 共12页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,题目:洗扑克牌并发牌给玩家,最后整理,题目分析,将,54,张扑克牌统一编号为:,0,1,2,52,53,,然后随机地从中一一抽取一张牌,并依次放起,形成新的序列。具体还要解决四个问题:,如何存储,54,张扑克牌;,在此基础上如何随机洗牌;,确定庄家,发牌给各玩家,并将底牌给该庄家;,整理玩家的牌并打印输出。,问题分析,1.,扑克牌的存储,在计算机高级语言中,允许用一个名字来命名一组依次存放的同类型数据,并把这样的数据类型称为,数组,。例如,可以把,54,张扑克牌用数组,pk,来存储,,pk,代表了,54,个扑克数据的整体,也代表了,54,个变量。,问题分析,设想,用三位整数表示每张扑克牌,其中第一位表示牌种类,后两位表示牌号,例如:,101,,,113,,分别表示红桃尖、,红桃,K,;,201,,,213,,,分别表示方块尖、,方块,K,;,301,,,313,,,分别表示梅花尖、,梅花,K,;,401,,,413,,,分别表示黑桃尖、,黑桃,K,;,501,,,502,,,分别表示大、小王。,于是,,54,张扑克牌可以用整数表示,存储,54,张扑克牌的数组,pk,可以用如下的声明语句建立:,int,pk,=new int54,;,问题分析,数组可以用括在花括弧中的数据序列进行初始化。如数组,pk,的初始化语句为:,int,pk54=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.,随机洗牌算法,501,502,101,412,406,0,1,2,52,53,pk,下标,pk,元素值,413,r,(a,),初始化后的,pk,数组,406,502,101,412,501,0,1,2,52,53,pk,下标,pk,元素值,413,r,(,b,)在,pk0,到,pk53,之间找一个随机元素与,pk0,对调,413,101,412,406,1,2,52,r,pk,下标,pk,元素值,502,406,0,(,c,)在,pk1,到,pk53,之间找一个随机元素与,pk1,对调,在,0,到,53,之间产生一个随机数,r=46,(,r=(,int)(Math.random,()*53),),,,将,pk0,与,pkr,交换,在到,53,之间产生一个随机数,r=53,(,=(,int)(Math.random,()*(,53-1)+1,),将,pk1,与,pkr,交换,问题分析,在,i,到,53,之间产生一个随机数,r,(,r=,=(,int)(Math.random,()*,(53-i)+i,),将,pki,与,pkr,交换;,直到前,53,张牌被全部交换。,问题分析,四位玩家分到的牌用二维数组存储:,int,card=new int4;,其中数组的第二维列数不事先定义。,问题分析,3,、确定庄家,并将底牌给该庄家,用,int,p,=(,int)(Math.random,()*4);,p=0,则表示坐东的玩家为庄家,将底牌,6,张给他,p=1,则表示坐南的玩家为庄家,将底牌,6,张给他,p=2,则表示坐西的玩家为庄家,将底牌,6,张给他,p=3,则表示坐北的玩家为庄家,将底牌,6,张给他,问题分析,确定数组,card0,card1,card2,card3,的长度,代表各玩家手上牌的数量:,for(int,i=0;i,card.length;i,+),if(i,=p),cardi,=new int18;,else,cardi,=new int12;,问题分析,发牌过程:,将前,48,张牌分别给四位玩家,最后六张最后底牌给庄家。,for(int,i=0;i4;i+),for(int,j=0;j0;k-),cardi18-k=pk54-k;,问题分析,4,、,整理玩家的牌并打印输出,对,card0,card1,card2,card3,的数组元素分别进行从大到小进行排序,最后对二维数组,card,打印输出即为各位玩家手上的牌。,注意:用,cardij/100,判断花色,用,cardij%100,判断牌的大小,Questions?,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服