package Proyectos;

import java.util.Random;
import java.util.Scanner;

public class Examen24_25 {

    static Random rd = new Random();
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        //-----------INICIO BLOQUE 1.

        //1. Representación de dos tableros de juego.
        char[][] tablero1 = new char[10][10];
        char[][] tablero2 = new char[10][10];

        //2. Jugadores
        char[] jugadores = new char[2];
        jugadores[0] = 'Y';
        jugadores[1] = 'V';

        //3a. Villanos
        char[] villanos = new char[2];
        villanos[0] = 'D';
        villanos[1] = 'R';

        //3b. Asignar cada villano correspondiente a cada tablero.
        rellenarTablero(tablero1, jugadores[0], 1);
        rellenarTablero(tablero2, jugadores[1], 1);
        rellenarTablero(tablero1, villanos[0], 5);
        rellenarTablero(tablero2, villanos[1], 5);

        //5. Rellenar 5 Muros .
        char muro = 'M';
        rellenarTablero(tablero1, muro, 5);
        rellenarTablero(tablero2, muro, 5);

        //4. Rellenar con L los espacios sobrantes.
        char libre = 'L';
        rellenarTableroConLibre(tablero1, libre);
        rellenarTableroConLibre(tablero2, libre);

        //6.
        tablero1[9][9] = 'F';
        tablero2[9][9] = 'F';

        //7
        int[] vidasJugadores = {3, 3}; //
        boolean[] haGanado = {false, false};

        //-----------FIN BLOQUE 1.
        //-----------INICIO BLOQUE 2.
        //Pedir Letra y Número
        //moverFicha(tablero1,obtenerTraslacion(letra,numero));

        System.out.println("Indique una letra y número de posiciones");
        obtenerTraslacion(sc.nextLine().charAt(0), sc.nextInt());
        moverFicha(tablero1,obtenerTraslacion(sc.nextLine().charAt(0), sc.nextInt()),jugadores,vidasJugadores,0 );

    }

    public static boolean esVacio(char[][] tablero, int x, int y) {
        return tablero[x][y] == '\u0000';
    }

    //FUNCIONES
    public static void rellenarTablero(char[][] tablero, char caracter, int numeroCasillas) {
        for (int i = 0; i < numeroCasillas; i++) {
            int x = rd.nextInt(10);
            int y = rd.nextInt(10);

            if (esVacio(tablero, x, y)) {
                tablero[x][y] = caracter;
            } else {
                i--;
            }
        }
    }

    public static void rellenarTableroConLibre(char[][] tablero, char caracter) {
        for (int i = 0; i < tablero.length; i++) {
            for (int j = 0; j < tablero[0].length; j++) {
                if (esVacio(tablero, i, j)) {
                    tablero[i][j] = caracter;
                }
            }
        }
    }

    //Aportas una letra y un número y te devuelve el vector de traslación.
    public static int[] obtenerTraslacion(char letra, int numero) {
        //Falta asignar número
        switch (letra) {
            /*
            ‘D’ → Derecha. [1][0]
            ‘A’ → Izquierda.[-1][0]
            ’W’ → Arriba,[0][-1]
            ‘S’ → Abajo,[0][1]
            ‘Q’ → Diagonal Izq Arriba.[-1][-1]
            ‘R’ → Diagonal Der Arriba.[1][-1]
            ‘E’ → Diagonal Izq Abajo.[-1][1]
            ‘B’ → Diagonal Der Abajo [1][1]*/
            case 'D':
                return new int[]{1, 0};
            case 'A':
                return new int[]{-1, 0};
            case 'W':
                return new int[]{0, -1};
            case 'S':
                return new int[]{0, 1};
            case 'Q':
                return new int[]{-1, -1};
            case 'R':
                return new int[]{1, -1};
            case 'E':
                return new int[]{-1, 1};
            case 'B':
                return new int[]{1, 1};
            default:
                return new int[]{0, 0};
        }
    }
    //Devuelves un TABLERO
    public static void moverFicha(char[][] tablero,int[] coordenadasMovimiento,char[] jugadores,int[] vidasJugador,int id){
        int[] coordenadaInicio = new int[0]; //Serán la posición que ocupe jugador en el tablero.

        for (int i = 0; i < tablero.length; i++) {
            for (int j = 0; j < tablero[0].length; j++) {
                if (tablero[i][j]==jugadores[id]){
                    coordenadaInicio=new int[]{i,j};
                }
            }
        }
        //YA TENGO COORDENADAS INICIO.
        int[] nuevaCoordenada = new int[]{coordenadaInicio[0]+coordenadasMovimiento[0],
                coordenadaInicio[1]+coordenadasMovimiento[1]};




        char caracterNuevaCoordenada = tablero[nuevaCoordenada[0]][nuevaCoordenada[1]];

        if (caracterNuevaCoordenada == 'M'){
            System.out.println("Has encontrado un MURO, no te puedes mover");
        } else if (caracterNuevaCoordenada == 'D') {
            System.out.println("Has encontrado un DARTHMAUL");
            tablero[coordenadaInicio[0]][coordenadaInicio[1]]='L';
            tablero[nuevaCoordenada[0]][nuevaCoordenada[1]]=jugadores[id];
            vidasJugador[id]=vidasJugador[id]-1;
            System.out.println("Has perdido una vida. Te quedan " + vidasJugador[id] + " vidas");
        } else if (caracterNuevaCoordenada == 'R') {
            System.out.println("Has encontrado un R2D2");
            tablero[coordenadaInicio[0]][coordenadaInicio[1]]='L';
            tablero[nuevaCoordenada[0]][nuevaCoordenada[1]]=jugadores[id];
            vidasJugador[id]=vidasJugador[id]-1;
            System.out.println("Has perdido una vida. Te quedan " + vidasJugador[id] + " vidas");
        } else if (caracterNuevaCoordenada == 'F') {
            System.out.println("Has ganado!!");
        } else {
            tablero[coordenadaInicio[0]][coordenadaInicio[1]]='L';
            tablero[nuevaCoordenada[0]][nuevaCoordenada[1]] = jugadores[id];
        }

        //... Conversión tablero.
    }

}
