用PHP实现一个关于德州扑克算法的程序(二):排序

根据德扑的规则,有四条、葫芦、三条、两对等牌型,暂时放下同花和顺子的情况,先研究一下这些牌型的算法该怎么写。

对于每个玩家来说,他面对的选择是从7张牌中选出5张牌组合成最大的牌型,所以输入参数是一个有7个元素组成的一维数组,如下面这种形式:

$cards=array("H7", "C7", "S7", "CJ", "CA", "HJ", "DK");

可以一眼看出这可以组成一副葫芦的牌型:三个7带两个J。因为与花色无关,所以只关心点数。取出点数:

    foreach($cards as $c){
        $point.=$c[1];
    }
    $po=str_split($point);//字符串转换为数组
    $po_count=array_count_values($po);//统计各点数的个数

经过如上处理,最后形成的数组就是如下的形式:

$po_count=array("7"=>3,"J"=>2,"K"=>1,"A"=>1);

而点数中还还包含有T、J、Q、K、A等字母,不便于排序,所以必须进行一次转换

foreach(array_keys($arr) as $v) {
        switch ($v) {
            case "A":
                $poi[] = 14;
                break;
            case "K":
                $poi[] = 13;
                break;
            case "Q":
                $poi[] = 12;
                break;
            case "J":
                $poi[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值