import javax.sound.sampled.Port; import javax.lang.model.element.Element; import javax.print.DocFlavor.STRING; import java.util.Arrays; public class Poker { public String suit = ""; public String values = ""; public Poker(){ values = ""; suit = ""; } public String getSuit(){ return suit; } public String getValue(){ return values; } //Metodo para cargar los valores y los palos public void setValues(String carta){ values = ordenarCadena(values + String.valueOf(carta.charAt(0))); suit = ordenarCadena(suit + String.valueOf(carta.charAt(1))); } //Recibe un string y lo ordena segun orden numerico o alfabetico public String ordenarCadena(String original){ String numeroAOrdenar = original; numeroAOrdenar = original; char[] chars = numeroAOrdenar.toCharArray(); Arrays.sort(chars); String cadenaOrdenada = new String(chars); return cadenaOrdenada; } //***********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++; } } } if (contador == 25) { return "COLOR"; } else { //Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia return ""; } } //***********CONTROLA QUE JUGADA SE DA EN LOS VALORES public String controlValor(String valores){ int contador = 0; 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++) { String l = String.valueOf(valores.charAt(i)); if (l == "T" || l == "J" || l == "Q" || l == "K" || l == "A") { thereIsLetter = true; break; } } //Una condicional para el caso que existan letras if(thereIsLetter == false){ //Para mejor entendimiento visual lo guardo en una variable de nombre mas corto String v = getValue(); if ( (v.equals("89JQT")) || (v.equals("9JKQT")) || ((v).equals("AJKQT")) ||(v.equals("2345A")) || (v.equals("789JT")) ||(v.equals("6789T"))){ return "ESCALERA"; } }else{ for (int i = 1; i < valores.length(); i++) { if (Character.getNumericValue(valores.charAt(i)) == Character.getNumericValue(valores.charAt(i-1)) + 1) { secuencial++; } } if (secuencial == 4) { return "ESCALERA"; } } }else if (contador == 17) { return "POKER"; }else if(contador == 13){ return "FULL"; }else if(contador == 11){ return "TRIO"; }else if(contador == 9){ return "PAR DOBLE"; }else if(contador == 7){ return "PAR"; } //Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia return ""; } public static void main(String[] args) { Carta carta1 = new Carta("4S"); Carta carta2 = new Carta("TD"); Carta carta3 = new Carta("5H"); Carta carta4 = new Carta("8C"); Carta carta5 = new Carta("3D"); Poker partida = new Poker(); int control = 0;//Variable para controlar el ingreso de cartas repetidas //Le paso los valores con el metodo del profe String [] mano = new String[]{carta1.valorPalo(),carta2.valorPalo(),carta3.valorPalo(),carta4.valorPalo(),carta5.valorPalo(),}; for (int i = 0; i < mano.length; i++) { partida.setValues(mano[i]); } for (int i = 0; i < mano.length; i++) { for (int j = 0; j < mano.length; j++) { if (mano[i].equals(mano[j])) { control++; } } } //Condicional para imprimir los resultados solo si no se encontraron cartas repetidas if(control == 5){ 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 // System.out.println(partida.getSuit()); // System.out.println(partida.getValue()); System.out.print("Sus cartas son: ["); for (int i = 0; i < mano.length; i++) { System.out.print(mano[i] + ","); } System.out.print("]\n"); System.out.println(partida.controlValor(partida.getValue()) + " " + partida.controlPalos(partida.getSuit())); } }else{ System.out.println("Jugada invalidas: Se encontraron cartas iguales, por favor intente de nuevo"); } } }