package clases;

import java.util.Random;
import java.util.Scanner;

public class PiedraPapelTijera {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Random random = new Random();
		// El juego tiene 2 jugadores.
		// 1 jugador (nombre a introducir)
		// 2 jugador (CPU)
		// Se termina el juego cuando uno de los dos tenga 3 victorias.
		// Se debe mostrar el número de rondas totales que se han jugado.
		/*
		 * [TIJERA] GANA A [PAPEL] [PAPEL] GANA A [PIEDRA] [PIEDRA] GANA A [TIJERA]
		 */

		System.out.println("Bienvenido a Piedra, Papel Y Tijera");
		System.out.println("Introduce tú nombre.");
		// Se almacena el nombre del jugador1.
		String jugador1 = sc.nextLine();
		String jugador2 = "CPU";

		int victoriasJugador1 = 0;
		int victoriasJugador2 = 0;
		int contadorRondas = 0;

		// Declaración de constantes
		final String TIJERA = "Tijera ✂️";
		final String PAPEL = "Papel 🧻";
		final String PIEDRA = "Piedra 🗿";

		// While condición = En caso de que se cumpla se repite.
		// Condición ()
		// Bloque de código de cada repetición
		// Mientras que las victorias del jugador 1 y las del jugador 2, sean menores
		// que 3, la partida continua.
		while (victoriasJugador1 < 3 && victoriasJugador2 < 3) {
			contadorRondas++;
			System.out.println("\n---Comienzo de Ronda Número: " + contadorRondas+"---\n");

			// Opción Jugador1 (Persona)

			System.out.println("Menú de opciones para elegir:\n");
			System.out.println("1.\tTijera\t✂️");
			System.out.println("2.\tPapel\t🧻");
			System.out.println("3.\tPiedra\t🗿");

			int opcionElegida1 = sc.nextInt();
			String opcionTraducida1 = "";

			if (opcionElegida1 == 1) {
				opcionTraducida1 = TIJERA;
				// System.out.println(opcionTraducida1);

			} else if (opcionElegida1 == 2) {
				opcionTraducida1 = PAPEL;
				// System.out.println(opcionTraducida1);

			} else if (opcionElegida1 == 3) {
				opcionTraducida1 = PIEDRA;
				// System.out.println(opcionTraducida1);
			}
			System.out.println(jugador1 + " ha elegido = " + opcionTraducida1);

			// Opción Jugador2 (CPU)
			int opcionElegida2 = random.nextInt(3) + 1;
			// System.out.println("Número introducido por CPU: "+opcionElegida2);
			String opcionTraducida2 = "";

			if (opcionElegida2 == 1) {
				opcionTraducida2 = TIJERA;
				// System.out.println(opcionTraducida2);

			} else if (opcionElegida2 == 2) {
				opcionTraducida2 = PAPEL;
				// System.out.println(opcionTraducida2);

			} else if (opcionElegida2 == 3) {
				opcionTraducida2 = PIEDRA;
				// System.out.println(opcionTraducida2);
			}
			System.out.println(jugador2 + " ha elegido = " + opcionTraducida2);
			
			System.out.println("\n");
			
			//[Jugador1] Tijera ✂️ VS [Jugador2] Papel 2
			System.out.println("[" + jugador1 + "] " + opcionTraducida1 + " VS " +"[" + jugador2 + "] " + opcionTraducida2);

			// VICTORIAS JUGADOR 1
			if (opcionTraducida1.equals(TIJERA) && opcionTraducida2.equals(PAPEL)) {
				victoriasJugador1++;
				System.out.println( jugador1 + " ha ganado usando " + opcionTraducida1);
			} else if (opcionTraducida1.equals(PAPEL) && opcionTraducida2.equals(PIEDRA)) {
				victoriasJugador1++;
				System.out.println( jugador1 + " ha ganado usando " + opcionTraducida1);
			} else if (opcionTraducida1.equals(PIEDRA) && opcionTraducida2.equals(TIJERA)) {
				victoriasJugador1++;
				System.out.println( jugador1 + " ha ganado usando " + opcionTraducida1);
			}

			// VICTORIAS JUGADOR 2
			else if (opcionTraducida2.equals(TIJERA) && opcionTraducida1.equals(PAPEL)) {
				victoriasJugador2++;
				System.out.println( jugador2 + " ha ganado usando " + opcionTraducida2);
			} else if (opcionTraducida2.equals(PAPEL) && opcionTraducida1.equals(PIEDRA)) {
				victoriasJugador2++;
				System.out.println( jugador2 + " ha ganado usando " + opcionTraducida2);
			} else if (opcionTraducida2.equals(PIEDRA) && opcionTraducida1.equals(TIJERA)) {
				victoriasJugador2++;
				System.out.println( jugador2 + " ha ganado usando " + opcionTraducida2);
			}
			// EMPATE
			else {
				System.out.println("Empate técnico entre " + jugador1 + " y " + jugador2);

			}
		}
		if (victoriasJugador1 == 3) {
			System.out.println("Enhorabuena " + jugador1 + " has ganado la partida.");
		} else {
			System.out.println("Enhorabuena " + jugador2 + " has ganado la partida.");
		}

		// Rondas ganadas Jugador1
		// Rondas ganadas Jugador2
		// Rondas totales
		System.out.println("\n-- ESTADÍSTICAS GENERALES DE LA PARTIDA--\n");
		System.out.println("Rondas ganadas" + " (" + jugador1 + ") " + " : " + victoriasJugador1);
		System.out.println("Rondas ganadas" + " (" + jugador2 + ") " + " : " + victoriasJugador2);

		System.out.println("Las rondas totales son: " + contadorRondas);

	}

}
