package Proyecto;

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”.
		 */
		
		//VARIABLES NECESARIAS
		Scanner sc=new Scanner(System.in);
		Random rd = new Random();
		
		//Nombres jugadores.
		String jugador1="USUARIO"; //Usuario
		String jugador2="CPU"; //CPU
		
		//Sistema de turnos.
		boolean esJugador1 = true;
		
		//Contador victorias
		int contadorVictorias1=0;
		int contadorVictorias2=0;
		
		//Contador de turnos
		int contadorTurnos=0;
		
		//Elección Jugadores
		int eleccionJugador1 = 0;
		int eleccionJugador2 = 0;
		
		//Elección Jugadores Traducida
		String eleccionTraducidaJugador1 = "";
		String eleccionTraducidaJugador2 = "";
		
		//[+] Lógica de partida
		while(contadorVictorias1<3 && contadorVictorias2<3) {
			
			//Solicitud de la ELECCIÓN al USUARIO
			System.out.println(jugador1+" Introduce una de las tres opciones:\n"
					+ "1. Piedra\n"
					+ "2. Papel\n"
					+ "3. Tijera");
			eleccionJugador1=sc.nextInt();
			
			//Solicitud de la ELECCIÓN de la CPU.
			/*System.out.println(jugador1+" Introduce una de las tres opciones:\n"
					+ "1. Piedra\n"
					+ "2. Papel\n"
					+ "3. Tijera");*/
			eleccionJugador2=rd.nextInt(1, 4); //[1-3]
			
			
			
			//1ª IDEA: En esta estructura concreta: IF es el condicional que mejor se adapta.
			//[SWITCH]
			
			//2ª IDEA: Obligar o forzar al usuario a que siempre nos de una opción correcta.
			
			//Conversión OPCIÓN 1ER JUGADOR
			if(eleccionJugador1==1) {
				eleccionTraducidaJugador1="PIEDRA";
			}else if(eleccionJugador1==2) {
				eleccionTraducidaJugador1="PAPEL";
			}else if(eleccionJugador1==3) {
				eleccionTraducidaJugador1="TIJERA";
			}
			
			//Conversión OPCIÓN 2O JUGADOR
			if(eleccionJugador2==1) {
				eleccionTraducidaJugador2="PIEDRA";
			}else if(eleccionJugador2==2) {
				eleccionTraducidaJugador2="PAPEL";
			}else if(eleccionJugador2==3) {
				eleccionTraducidaJugador2="TIJERA";
			}
			
			//Usuario ha elegido ... VS CPU ha elegido ...

			System.out.println(jugador1 +" ha elegido "+ eleccionTraducidaJugador1);
			System.out.println(jugador2 +" ha elegido "+ eleccionTraducidaJugador2);
			
			//MATCH ¿Quién gana? 
			
			//Reglas de Juego
			
			//- Piedra[1] GANA A Tijera[3] OK
			//- Piedra[1] PIERDE CON Papel[2]
			
			//- Papel[2] GANA A Piedra[1] OK
			//- Papel[2] PIERDE CON Tijera[3]
			
			//- Tijera[3] GANA A Papel[2] OK
			//- Tijera[3] PIERDE CON Piedra[1] OK
			
			//TODAS LAS CONDICIONES EN LAS QUE J1 GANA
			if(
				(eleccionJugador1==1  &&  eleccionJugador2==3)	||
				(eleccionJugador1==2 && eleccionJugador2==1)	||
				(eleccionJugador1==3 && eleccionJugador2==2)
				) {
				contadorVictorias1++;
				System.out.println("Gana "+jugador1);
			

			}				//TODAS LAS CONDICINOES EN LAS QUE PIERDE

			else if (
					(eleccionJugador2==2 && eleccionJugador1==1)||
					(eleccionJugador2==3 && eleccionJugador1==2)||
					(eleccionJugador2==1 && eleccionJugador1==3)
					) {
					contadorVictorias2++;
					System.out.println("Gana "+jugador2);
			}else {
				//EMPTATE
				System.out.println("Empate");
			}
			contadorTurnos++;
			
			System.out.println("\n\nESTADÍSTICAS:");
			System.out.println("Turnos Jugados: "+contadorTurnos);
			System.out.println("Victorias J1: "+contadorVictorias1);
			System.out.println("Victorias J2: "+contadorVictorias2+"\n\n");
			
			
		}
		
		
		
		
	}
}
