如何用C++编写一个随机发牌的程序?

如何用C++编写一个随机发牌的程序?,第1张

一个思路是(全是文字,耐心吧):

定败空义54个数(0~53),存在数组里。

产生N个在0~53的随机数(建议N取大一点以保证随机性,但不能太大以免效率低),交换数组的两个随机元素,相当于随机在牌堆里交换两张牌。

这样做完之后,就产生了一个随机的1~54的序列。

然后对0~53的每个数规定一个花色和点数。比如规定x属局让于0~53,若x/13==0则x花色为黑桃,x%13的余数加1就是点数;若x/13==1则规定x为红桃,等等;若x为52则定为小王,x为53则定为大王。这样牌堆就生成好了,发牌就是从牌堆顶取察腊瞎牌了,即从数组的0号元素开始取数字,然后解释它的花色、点数。

1、从庄家开始按顺时针方向依次发牌。

2、发牌规则:利用有序数组将54张牌进行编号。以(X,Y,Z)宽悉察形式给出,黑桃花色记为A,梅花花色记为B,红桃花色记为C,方块花色记为D,王记录为,按牌的大小顺序利用1-13给每张牌编号,用数字1代表纸牌的3,用数字2代表纸牌4,以此类推。按照牌的大小花色为慎茄每一陆闹张牌编号,规定花色排列顺序黑桃>梅花>红桃>方块,小王大王分别编号53,54,如黑桃四编号04,梅花A编号14,以此类推。给出实例,例如梅花A编号为(B,1,14),大王编号为(E,254)2对三个玩家进行标号。随机选择一个玩家记为1号,并按逆时针顺序将另外两个玩家记为2号和3号。由计算机随机将01~54这54个数随机产生一个排列。将前十七个数所对应的牌发给一号玩家,以此类推。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12405366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存