diff --git a/Poker.java b/Poker.java index 21bcc21..55cacf9 100644 --- a/Poker.java +++ b/Poker.java @@ -35,14 +35,7 @@ public class Poker { } //***********CONTROLA LA JUGADA QUE SE DA EN LOS PALOS public String controlPalos(String palos){ - int contador = 0; - for (int i = 0; i < palos.length(); i++) { - for (int j = 0; j < palos.length(); j++) { - if (palos.charAt(i) == palos.charAt(j)) { - contador++; - } - } - } + int contador = formulaYovan(palos); if (contador == 25) { return "COLOR"; } else { @@ -52,16 +45,9 @@ public class Poker { } //***********CONTROLA QUE JUGADA SE DA EN LOS VALORES public String controlValor(String valores){ - int contador = 0; + int contador = formulaYovan(valores); int secuencial = 0; boolean thereIsLetter = false; - for (int i = 0; i < valores.length(); i++) { - for (int j = 0; j < valores.length(); j++) { - if (valores.charAt(i) == valores.charAt(j)) { - contador++; - } - } - } if (contador < 6) { //controla que existan letras en los valores mandados for (int i = 0; i < valores.length(); i++) { @@ -98,7 +84,7 @@ public class Poker { return "PAR DOBLE"; }else if(contador == 7){ return "PAR"; - } + } //Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia return ""; } @@ -116,6 +102,42 @@ public class Poker { } return "0"; } + //Con este metodo controlo de que manera se repite el string que recibe el metodo(Formula de yorhan ;D ) + public int formulaYovan(String cadena){ + int contador = 0; + for (int i = 0; i < cadena.length(); i++) { + for (int j = 0; j < cadena.length(); j++) { + if (cadena.charAt(i) == cadena.charAt(j)) { + contador++; + } + } + } + return contador; + } + //Con este metodo le doy valor numerico a la cadena valor + public int valorCadenaNumerico(String strValue){ + int valorNumerico = 0; + switch (controlValor(values)) { + case "89JQT": valorNumerico = 50; + break; + case "9JKQT":valorNumerico = 55; + break; + case "AJKQT":valorNumerico = 60; + break; + case "2345A":valorNumerico = 15; + break; + case "789JT":valorNumerico = 45; + break; + case "6789T":valorNumerico = 40; + break; + default: + for (int i = 0; i < array.length; i++) {valorNumerico = Character.valueOf(strValue.charAt(i));} + break; + } + return valorNumerico; + } + + public static void main(String[] args) { @@ -170,7 +192,7 @@ public class Poker { } //Condicional para imprimir los resultados solo si no se encontraron cartas repetidas if(control == 5){ - if ((partida.controlValor(partida.getValue())== "") && (partida.controlPalos(partida.getSuit()) == "" )) { + if ((partida.controlValor(partida.getValue()) == "") && (partida.controlPalos(partida.getSuit()) == "" )) { System.out.println("CARTA ALTA"); }else{ //Dejo a modo de comentario para posibles comprobaciones o controles