Todo depende de como el sistema valla a recibir la data, aunque debería de estar preparado para varios ambitos, por ejemplo,
no es lo mismo parar
KKK82
que
13131382
así que como tu sistema de pruebas va a manejar dichos datos para determinar que valor darle al az en ese momento si 1 o 14
si modificamos la clase, tomando como valor del as en número 14 únicamente, quedaria la clase así:
Código PHP:
Ver originalclass Cartas{
private function _mano($X){
"1413121110" => "Escalera real de Color",
"109876" => "Escalera de Color",
"99994" => "Poker",
"4441212" => "Full",
"77722" => "Full",
"5551414" => "Full",
"7771313" => "Full",
"1211754" => "Color",
"12111098" => "Escalera",
"543214" => "Escalera",
"13131382" => "Trio",
"10106611" => "Doble Pareja",
"11111485" => "Pareja"
);
}//
private function _valor($X){
switch ($X) {
case 'J':
return 11;
break;
case 'Q':
return 12;
break;
case 'K':
return 13;
break;
case 'A':
return 14;
break;
}
}
}
public function _valida($X){
//asort($X);
//$b = implode("",$X);
//return $this->_mano($b);
$b = "";
foreach($X as $item){
$b .= $item;
}else{
$b .= $this->_valor($item);
}
}
return $this->_mano($b);
}else{
return false;
}
}//
}//
$p = new Cartas();
$jugadas = [
["A","K","Q","J",10],//Escalera real de Color
[10,9,8,7,6],//Escalera de Color
[9,9,9,9,4],//Poker
[4,4,4,"Q","Q"],//Full
[7,7,7,2,2],//Full
[5,5,5,"A","A"],//Full
[7,7,7,"K","K"],//Full
["Q","J",7,5,4],//Color
["Q","J",10,9,8],//Escalera
[5,4,3,2,"A"],//Escalera
["K","K","K",8,2],//Trio
[10,10,6,6,"J"],//Doble Pareja
["J","J","A",8,5],//Pareja
];
foreach($jugadas as $item){
echo "<li>".$p->_valida($item)."</li>";
}
retornando la siguiente lista:
->Escalera real de Color
->Escalera de Color
->Poker
->Full
->Full
->Full
->Full
->Color
->Escalera
->Escalera
->Trio
->Doble Pareja
->Pareja
claro aquí no estamos tomando ni el palo ni el color para dichas validaciones y estamos manejando el orden de llegada de la data asignando el único valor de 14 al as, no soy muy experto en poker, así que no te sabría decir en que momento el as vale 1 o 14, pero igual sería una validación que se podría hacer de acuerdo al orden de envío del as imagino yo.
como por ejemplo esta escalera:
[5,4,3,2,"A"],//Escalera
alli se podría decir que el as vale 1
también debes manejar los patrones, pues puedo tener una escalera en una mano donde tenga 7 cartas por ejemplo