Juego Piedra, papel y tijera en Java

Hola a todos, hoy os voy a explicar como hacer el juego del piedra papel y tijera en Java.

Todos conocemos el famoso juego del piedra, papel y tijera. Piedra gana a tijera, tijera gana a papel y papel gana a piedra.

Lo vamos a hacer en Java con una simple clase y un enumerado.

Empecemos con el enumerado, creando cada una de las manos disponibles, asociandoles un indice (0=piedra, 1=papel y 2=tijera).


public enum Mano {

    PIEDRA(0),
    PAPEL(1),
    TIJERA(2);

    private int index;

    private Mano(int index) {
        this.index = index;
    }

    public int getIndex() {
        return index;
    }

}

Ahora vamos con la clase, la llamaremos PiedraPapelTijera.

Vamos a usar la misma estrategia que la tabla de tipos de pokemon, una tabla con filas y columnas donde la fila sera el jugador 1 y la columna el jugador 2. El contenido de sera 1,0 y -1, siendo 1 que la fila gana sobre la columna, el 0 es empate y el -1 es que la fila pierde sobre la columna.

He aquí un ejemplo:

Por ejemplo, en la posición [0,1] es -1, es decir, que piedra pierde contra papel.

Esta sería nuestra clase:



public class PiedraPapelTijera {

    private int[][] tablero;

    public PiedraPapelTijera() {
        this.inicializarTablero();
    }

    private void inicializarTablero() {

        /*
                    PIEDRA  PAPEL TIJERA
           PIEDRA      0      -1     1
           PAPEL       1       0    -1
           TIJERA     -1       1     0
         */
        int[][] t
                = {
                    {0, -1, 1},
                    {1, 0, -1},
                    {-1, 1, 0}
                };

        this.tablero = t;

    }

    public int ganador(Mano j1, Mano j2) {
        return this.tablero[j1.getIndex()][j2.getIndex()];
    }

}


Tenemos el método ganador que nos devuelve el resultado.

Veamos un ejemplo práctico:



public class Ejercicio_POO_DDR_22 {

    public static void main(String[] args) {

        Mano j1 = Mano.PAPEL;
        Mano j2 = Mano.PAPEL;
        
        PiedraPapelTijera ppt = new PiedraPapelTijera();
        
        int ganador = ppt.ganador(j1, j2);
        
        switch(ganador){
            case 0:
                System.out.println("Empate");
                break;
            case 1:
                System.out.println("J1 gana");
                break;
            case -1:
                System.out.println("J2 gana");
                break;
        }
        
        
        
    }

}

Este es el resultado:

Os dejo aquí el Github del proyecto para seguirlo

Os dejo un vídeo donde lo explico paso a paso:

Y otro video haciendolo en interfaz grafica:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.