13张扑克牌排序算法

来源:互联网 发布:unity源码 泄露 编辑:程序博客网 时间:2024/04/30 18:39

上次写了一篇52张扑克牌的算法,写的将一副扑克(去掉大小王)之后的排序,排序是按照数字和花式排列的。数字从大到小,花式从黑桃,梅花,红心,方块。后来有一个网友回复,还希望看到13张扑克牌的排序算法——这个算法是按照我们打牌的常规排法,把数量多的放前面,数量相同的比大小。可以参考文章的输出结果看。

 

完整代码如下:

 

先定义了一个Poker的类,来标记一副牌中所包含的同数字的所有牌,例如13张牌中有4个A,那么一个Poker都代表这4个A,用Number,代表牌代表的数字,在上面的代码中,Number代表了扑克牌,在numberArray中的索引。Suits,代表了Poker都包含的花式有几个,对于一副牌,最多有4个。如果两副牌最多有8个。关键的排序算法,在上述代码中用到了LINQ。当然,不用LING也是可以的,可以用以下代码代替。

 

 

然后在调用的地方修改为:

 

 

程序允许的结果如下,Poker.txt

 

 

SortedPoker.txt

 

原创粉丝点击