Jugada.java 4.17 KB
Newer Older
Nahuel Mereles Rodriguez 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
package generala;

public class Jugada {

    // Instanciamos la variable "jugada" como "NADA"; porque al ejecutarse los metodos de comprobacion, si ninguno actualiza esta 
    //  variable con su respectivo valor como "GENERALA", "POKER", etc. Significa que no cumplio con  ninguna de las jugadas y debe
    //  quedarse como "NADA" 
    private String jugada1 = "NADA";

    //Constructor para instanciar un objeto Jugada y usar sus metodos
    public Jugada() {

    }

    public String getJugada1() {
        // retorna la variable de instancia actual
        return this.jugada1;
    }

    public void setJugada1(String jugada1) {
        // Modifica la variable de instancia actual con el parametro que se le pase
        this.jugada1 = jugada1;
    }

    // ------   Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "GENERALA"   ------
    public void generala(int[] dados) {
        int contador = 0;
        for (int i = 0; i < dados.length - 1; i++) {
            // En caso de que el dado en la posicion "i" sea igual al dado en la posicion siguiente
            // el contador aumenta en uno
            if (dados[i] == dados[i + 1]) {
                contador++;
            }
        }
        // Si el contador llego a 4 es porque todas las comparaciones entre dados fueron iguales
        // Entonces se actualiza la variable de instancia
        if (contador == 4) {
            setJugada1("GENERALA");
        }
    }

    // ------   Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "POKER"   ------
    public void poker(int[] dados) {
        // IMPORTANTE: El metodo poker funciona igual que GENERALA con la diferencia de que el contador debe llegar a 3 para ser POKER
        int contador = 0;
        for (int i = 0; i < dados.length - 1; i++) {
            if (dados[i] == dados[i + 1]) {
                contador++;
            }
        }

        //  Al estar el array ordenado de mayor a menor solo hay 2 opciones de POKER
        //  Una seria el numero menor al principio y otra el numero mayor al final
        //  En los dos casos los numeros en la posicion 1, 2, 3 son iguales 
        //  por eso se realiza la comprobacion ademas de que el contador sea 3
        //  array1 = [ 4, 5, 5, 5, 5 ]
        //  array2 = [ 4, 4, 4, 4, 5 ]
        if (contador == 3 && dados[1] == dados[2] && dados[2] == dados[3]) {
            setJugada1("POKER");
        }
    }

    // ------   Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "FULL"   ------
    public void full(int[] dados) {
        // IMPORTANTE: El metodo "full" funciona igual que GENERALA con la diferencia de que el contador debe llegar a 3 para ser POKER
        int contador = 0;
        for (int i = 0; i < dados.length - 1; i++) {
            if (dados[i] == dados[i + 1]) {
                contador++;
            }
        }

        //  Al estar el array ordenado de mayor a menor solo hay 2 opciones de FULL
        //  El numero en la posicion 2 es diferente al de la posicion anterior
        //  y tambien puede ser diferente a de la posicion siguiente
        //  array1 = [ 4, 4, 5, 5, 5 ]
        //  array2 = [ 4, 4, 4, 5, 5 ]
        if (contador == 3 && dados[1] != dados[2]) {
            setJugada1("FULL");
        } else if (contador == 3 && dados[2] != dados[3]) {
            setJugada1("FULL");
        }
    }

    // ------   Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "ESCALERA"   ------
    public void escalera(int[] dados) {
        int contador = 0;
        for (int i = 0; i < dados.length - 1; i++) {
            //Si el dado en la posicion [0] es 1 y le sumas 1, el resultado debe ser igual al dado de la posicion siguiente 
            if (dados[i] + 1 == dados[i + 1]) {
                contador++;
            }
        }
        if (contador == 4) {
            this.jugada1 = "ESCALERA";
        }
    }

    // ------   Comprueba si los numeros aleatorios de un array cumplen las caracteristicas de "POKER"   ------
    public void tiro(int[] dados) {
        //  Se ejecuta todos los metodos de comprobacion
        generala(dados);
        poker(dados);
        full(dados);
        escalera(dados);
    }
}