用上一篇文章的算法已经可以解决大部分牌型的计算,但是还缺少另外一种牌型的计算,那就是顺子。
顺子的特点是至少有5张点数连续的牌面,而且输入的数据是字母与数字混合的数组,不利于排序。因此必须对这样的情况进行转换:
function pointToNum($arr){
$num=0;
//统计在这副牌型中点数为数字的情况,从而判断A是做14合适还是作1合适
foreach($arr as $p){
if(!is_numeric($p))
$num++;
}
foreach($arr as $p){
switch($p){
case "A":
if($num>=5){
$poi[]=14;
}else{
$poi[]=1;//A还可以作为1使用
}
break;
case "K":
$poi[]=13;
break;
case "Q"