Poker.java 4.62 KB
Newer Older
1 2 3 4 5
import javax.sound.sampled.Port;
import javax.lang.model.element.Element;
import javax.print.DocFlavor.STRING;
import java.util.Arrays;

Yovan Martinez committed
6 7
public class Poker {

8 9 10 11 12 13 14 15 16 17 18 19
    public String suit = "";
    public String values = "";

    public Poker(){
        values = "";
        suit = "";
    }
    public String getSuit(){
        return suit;
    }
    public String getValue(){
        return values;
Yovan Martinez committed
20
    }
21
    //Metodo para cargar los valores y los palos
22
    public void setValues(String carta){
23 24
        values = ordenarCadena(values + String.valueOf(carta.charAt(0)));
        suit = ordenarCadena(suit + String.valueOf(carta.charAt(1)));
25 26 27 28 29 30 31 32 33 34 35
    }
    //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
Yovan Martinez committed
36 37 38 39 40 41 42 43 44 45
    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) {
46
            return "COLOR";
Yovan Martinez committed
47
        } else {
48
            //Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia
49
            return "";
Yovan Martinez committed
50 51
        }
    }
52 53 54 55 56 57 58 59 60
   //***********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++;
Yovan Martinez committed
61 62
            }
        }
63 64 65 66 67 68 69 70
    }
    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;
Yovan Martinez committed
71 72
            }
        }
73
        //Una condicional para el caso que existan letras
74
        if(thereIsLetter == false){
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
            //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";
Yovan Martinez committed
100
    }
101
    //Para mejor manejo si no cumple ninguna de las condiciones envia una cadena vacia
102 103
    return "";
}
Yovan Martinez committed
104 105
    public static void main(String[] args) {

106 107 108
        Carta carta1 = new Carta("6S");
        Carta carta2 = new Carta("6D");
        Carta carta3 = new Carta("8H");
109 110
        Carta carta4 = new Carta("8C");
        Carta carta5 = new Carta("8D");
111 112
        Poker partida = new Poker();
        //Le paso los valores con el metodo del profe
113 114 115 116
        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]);
        }
117
        if ((partida.controlValor(partida.getValue())== "") && (partida.controlPalos(partida.getSuit())== "")) {
118 119
            System.out.println("CARTA ALTA");
        }else{
120 121
            // System.out.println(partida.getSuit());
            // System.out.println(partida.getValue());
122 123 124 125 126
            System.out.print("Sus cartas son: [");
            for (int i = 0; i < mano.length; i++) {
                System.out.print(mano[i] + ",");
            }
            System.out.print("]\n");
127 128
            System.out.println(partida.controlValor(partida.getValue()) + " " + partida.controlPalos(partida.getSuit()));
        }
Yovan Martinez committed
129 130
    }
}