Poker.java 4.33 KB
Newer Older
Angel Zarate committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 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 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
public class Poker {

    public static int manoGanadora(String mano) {
        int puntos = 0;

        switch (mano) {
            case "ESCALERA DE COLOR":
                puntos += 9;
                break;
            case "POKER":
                puntos += 8;
                break;
            case "FULL":
                puntos += 7;
                break;
            case "COLOR":
                puntos += 6;
                break;
            case "ESCALERA":
                puntos += 5;
                break;
            case "TRIO":
                puntos += 4;
                break;
            case "PAR DOBLE":
                puntos += 3;
                break;
            case "PAR":
                puntos += 2;
                break;
            case "CARTA MAYOR":
                puntos += 1;
                break;
            default:
                break;
        }

        return puntos;
    }

    // ------- Funcion de desempate -------
    public static void desempate(int[] cartaGrande1, int[] cartaGrande2, String nombre1, String nombre2) {
        if (cartaGrande1[4] == cartaGrande2[4]) {
            boolean ganoJugador1 = false;
            boolean ganoJugador2 = false;
            boolean empateDefinitivo = false;
            boolean finalizar = false;
            int i = 3;
            while (finalizar == false) {
                if (cartaGrande1[i] > cartaGrande2[i]) {
                    ganoJugador1 = true;
                    finalizar = true;
                } else if (cartaGrande1[i] < cartaGrande2[i]) {
                    ganoJugador2 = true;
                    finalizar = true;
                } else if (cartaGrande1[i] == cartaGrande2[i]) {
                    empateDefinitivo = true;
                    finalizar = true;
                }
                i--;
            }

            if (ganoJugador1) {
                System.out.println("Felicidades " + nombre1 + ", Has Ganado en el Desempate");
            } else if (ganoJugador2) {
                System.out.println("Felicidades " + nombre2 + ", Has Ganado en el Desempate");
            } else if (empateDefinitivo) {
                System.out.println(nombre1 + " y " + nombre2 + " han empatado.");
            }
        }
    }

    public static void main(String[] args) {
        // --------------------------------------
        // Jugadores
        Jugador jugador1 = new Jugador();
        jugador1.pedirNombre();
        String nombreJugador1 = jugador1.getNombre();
        jugador1.pedirNombre();
        String nombreJugador2 = jugador1.getNombre();

        // --------------------------------------
        // Generacion de Cartas
        Carta carta1 = new Carta("3C");
        Carta carta2 = new Carta("3C");
        Carta carta3 = new Carta("3S");
        Carta carta4 = new Carta("5C");
        Carta carta5 = new Carta("8C");

        Carta carta6 = new Carta("2C");
        Carta carta7 = new Carta("2C");
        Carta carta8 = new Carta("2S");
        Carta carta9 = new Carta("6C");
        Carta carta10 = new Carta("8S");

        // --------------------------------------
        // Inicio de Comprobaciones
        Jugada jugada1 = new Jugada();
        String x = jugada1.ejecutarComprobaciones(carta1, carta2, carta3, carta4, carta5);
        System.out.println("Jugada X " + jugada1.getPosibleJugada());
        String z = jugada1.ejecutarComprobaciones(carta6, carta7, carta8, carta9, carta10);
        System.out.println("Jugada Z " + jugada1.getPosibleJugada());

        // ----------- Comprobacion de mano ganadora ----------
        int puntosMano1 = manoGanadora(x);
        int puntosMano2 = manoGanadora(z);

        System.out.println("Puntos Jugador 1 = " + puntosMano1);
        System.out.println("Puntos Jugador 2 = " + puntosMano2);

        if (puntosMano1 > puntosMano2) {
            System.out.println(nombreJugador1 + " gano con: " + x);
        } else if (puntosMano1 > puntosMano2) {
            System.out.println(nombreJugador2 + " gano con: " + x);
        } else if (puntosMano1 == puntosMano2) {
            int[] mano1Numeros = jugada1.valoresNumericosEnArray(jugada1.crearArray(carta1, carta2, carta3, carta4, carta5));
            int[] mano2Numeros = jugada1.valoresNumericosEnArray(jugada1.crearArray(carta6, carta7, carta8, carta9, carta10));
            desempate(mano1Numeros, mano2Numeros, nombreJugador1, nombreJugador2);
        }
    }
}