德州php开发,PHP扑克德州控股-检查是否为直线

我真的认为这会更容易评估一个直,但遗憾的是,我在这里尝试了几天。

我有一副牌,每个玩家得到两张牌,当谈到评估时,我把玩家卡和社区卡结合起来,从高到低排序。

阵列看起来像

['14d', '13d', '12d', '1d', '10d', '9d', '8d'];

我尝试过多种方法,例如循环和手动评估每张卡,但它需要评估最少5张卡(2张玩家卡+3张社区卡)最多7张卡(2张玩家卡+5张社区卡)

$hand = ['14d', '13d', '12d', '11d', '10d', '9d', '8d']; //Debug hand variable

$hand_len = count($hand);

$l_card = (int)$hand[0];

$set = array();

rsort($hand, SORT_NUMERIC);

for ($i=0; $i < $hand_len; $i++) {

//Which values to compare

if ( $i+1 != $hand_len && $i+2 != $hand_len) {

$c1 = (int)$hand[$i]; //14

$c2 = (int)$hand[$i+1]; //13

if ( $c1 == $c2+1 ) { //if 14 == 13(+1)

array_push($set, $hand[$i]);

}

} elseif ($i+1 == $hand_len && $i+2 == $hand_len) {

$c1 = (int)$hand[$i]; //8

$c2 = (int)$hand[$i-1];//9

if ( $c1 == $c2-1 ) { //if 8 == 9(-1)

array_push($set, $hand[$i]);

}

}

}

//Still to add evaluation for 14 (Ace) being used for low straight (eg. 14d, 2d, 3d...).

对于每一张牌,我必须转换成一个整数,去掉西装字符,然后进行计算。我可以得到一定程度的成功,直到它必须评估最后一张牌。

例如。

['14d', '13d', '12d', '11d', '10d', '9d', '8d'];

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值