最近闲来无事想做一个斗地主的游戏,结果卡在了洗牌这个步骤上了,网上看了一下,都不错,但是我在想我也可以做一个模拟人洗牌的动作啊。然后我给大家分享一下我的想法,请大家给点建议。
一下是代码部分:
定义了一个字典,方便初始化一副新牌
InitialisePackOfCards方法便是初始化了,这个类的作用是方便查看每张扑克对象的属性
这个方法便是我的洗牌动作
首先获取到一副新牌(有序的)
for循环的次数就是洗牌的次数
使用Queue(内置的队列,类似于集合的东西)方便洗牌动作,将完整的一副牌分为两份,清空源集合,然后随机重新将某一份牌的第一张插入到集合中,当两份牌全部插入到集合中时,便是洗牌一次的完整的一副牌,直到洗牌次数结束
测试结果:
每副牌都洗牌54次,耗时也不久
转载于:https://www.cnblogs.com/versilent/p/7837821.html
相关资源:模拟人工洗牌