import java.util.Random;
import java.util.Scanner;

public class PiedraPapelTijera {
	public static void main(String[] args) {
		// 3.1.Escribe un algoritmo que simule el juego de Piedra, Papel, Tijera.
		// Debe incluir: Sistema de turnos, contador de victorias por jugador, cuando el
		// contador de uno de los 2 jugadores sea igual a 3, no debe reproducir más
		// partidas y debe poner quien ha ganado y quien ha perdido.
		// Opcionalmente puede incluir el nombre del jugador A, el B se llamará CPU, y
		// cuando ponga el ganador mostrar “Ha ganado {nombre jugador} / CPU”.
		//String nombreJugador1, nombreJugador2;
		Scanner scanner = new Scanner(System.in);

		Random rd = new Random();

		final String OPCIONES = "\n1. Piedra\n2. Papel\n3. Tijera";
		final String TIJERA = "✂️";
		final String PIEDRA = "🪨";
		final String PAPEL = "🧻";

		
		//int victoriasJugador1 = 0;
		//int victoriasJugador2 = 0;

		//int opcionJugador1;
		//int opcionJugador2;
		
		int[] opcionesJugadores = new int[2];
		String [] traduccionJugadores = new String[2];
		//String [] nombreJugador1, nombreJugador2;
		String[] nombreJugadores = new String[2];
		int [] victoriaJugadores = new int [2];
 		System.out.println("Introduce el nombre del Jugador 1");

		nombreJugadores[0] = scanner.nextLine();
		nombreJugadores[1] = "CPU";

		// COMIENZO DE PARTIDA. [N jugadas]
		boolean finalizaPartida = false;

		while (!finalizaPartida) { // Mientras que la condicion que pongamos se repite. | Estructura de la partida.
			System.out.println("¿Que opcion eliges? " + OPCIONES);
			// 1 = TIJERA
			// 2 = PIEDRA
			// 3 = PAPEL
			
			//Sustituimos opcionJugador1 y opcionJugador2 por opcionesJugadores
			
			opcionesJugadores[0] = scanner.nextInt();
			opcionesJugadores[1] = rd.nextInt(1, 4);
			
			//opcionJugador1 = scanner.nextInt();
			//opcionJugador2 = rd.nextInt(1, 4);
			
		
			//String traduccionOpcionJugador1 = "";
			traduccionJugadores[0]="";
			//String traduccionOpcionJugador2 = "";
			traduccionJugadores[1]="";
			switch (opcionesJugadores[0]) {
			case 1:
				traduccionJugadores[0] = TIJERA;
				break;
			case 2:
				traduccionJugadores[0] = PIEDRA;
				break;
			case 3:
				traduccionJugadores[0] = PAPEL;
				break;

			default:
				break;
			}

			switch (opcionesJugadores[1]) {
			case 1:
				traduccionJugadores[1] = TIJERA;
				break;
			case 2:
				traduccionJugadores[1] = PIEDRA;
				break;
			case 3:
				traduccionJugadores[1] = PAPEL;
				break;

			default:
				break;
			}

			System.out.println("\n" + nombreJugadores[0] + ": " + traduccionJugadores[0] + " VS " + nombreJugadores[1] + ": "
					+ traduccionJugadores[1] + "\n");

			// Cuando el jugador1 saca Tijera
			if (opcionesJugadores[0]== 1 && opcionesJugadores[1] == 2) { // Jugador2 ha sacado Piedra
				victoriaJugadores[1]++;
				System.out.println("👑 " + nombreJugadores[1]);
				System.out.println(traduccionJugadores[0] + " es vencido por " + traduccionJugadores[1]);
			} else if (opcionesJugadores[0] == 1 && opcionesJugadores[1] == 3) { // Jugador2 ha sacado Papel
				victoriaJugadores[0]++;
				System.out.println("👑 " + nombreJugadores[0]);
				System.out.println(traduccionJugadores[0] + " vence a " + traduccionJugadores[1]);

				// Cuando el jugaddor saca Piedra
			} else if (opcionesJugadores[0]== 2 && opcionesJugadores[1] == 1) { // Jugador2 ha sacado Tijera
				victoriaJugadores[0]++;
				System.out.println("👑 " + nombreJugadores[0]);
				System.out.println(traduccionJugadores[0] + " vence a " + traduccionJugadores[1]);

			} else if (opcionesJugadores[0] == 2 && opcionesJugadores[1] == 3) { // Jugador2 ha sacado Papel
				victoriaJugadores[1]++;
				System.out.println("👑 " + nombreJugadores[1]);
				System.out.println(traduccionJugadores[0] + " es vencido por " + traduccionJugadores[1]);

				// Cuando el jugador saca Papel
			} else if (opcionesJugadores[0] == 3 && opcionesJugadores[1] == 1) { // Jugador2 ha sacado Tijera
				victoriaJugadores[1]++;
				System.out.println("👑 " + nombreJugadores[1]);
				System.out.println(traduccionJugadores[0] + " es vencido por " + traduccionJugadores[1]);

			} else if (opcionesJugadores[0] == 3 && opcionesJugadores[1] == 2) { // Jugador2 ha sacado Piedra
				victoriaJugadores[0]++;
				System.out.println("👑 " + nombreJugadores[0]);
				System.out.println(traduccionJugadores[0] + " vence a " + traduccionJugadores[1]);

			}

			// ESTADÍSTICAS DE LA PARTIDA.
			System.out.println("\n--- ESTADÍSTICAS GENERALES ---");
			System.out.println(nombreJugadores[0] + " tiene " + victoriaJugadores[0] + " victoria(s)");
			System.out.println(nombreJugadores[1] + " tiene " + victoriaJugadores[1] + " victoria(s)\n");

			if (victoriaJugadores[0] >= 3 || victoriaJugadores[1] >= 3) {
				finalizaPartida = true;
			}
		}
		System.out.println("Ha finalizado la partida");
		// QUIEN GANA
		if (victoriaJugadores[0] > victoriaJugadores[1]) {
			System.out.println("Enhorabuena jugador 1 ha ganado!");
		} else {
			System.out.println("Enhorabuena jugador 2 ha ganado!");

		}
	}
}
