package capitulo04.bloque08;

import java.util.Scanner;

public class Ejercicio05 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int[] posicion = solicitarPosicion(scanner);
        int fila = posicion[0];
        int columna = posicion[1];

        System.out.println("Movimientos posibles:");

        // Diagonal superior izquierda
        for (int i = fila - 1, j = columna - 1; i >= 0 && j >= 0; i--, j--) {
            System.out.println((char) ('a' + j) + "" + (8 - i));
        }

        // Diagonal superior derecha
        for (int i = fila - 1, j = columna + 1; i >= 0 && j < 8; i--, j++) {
            System.out.println((char) ('a' + j) + "" + (8 - i));
        }

        // Diagonal inferior izquierda
        for (int i = fila + 1, j = columna - 1; i < 8 && j >= 0; i++, j--) {
            System.out.println((char) ('a' + j) + "" + (8 - i));
        }

        // Diagonal inferior derecha
        for (int i = fila + 1, j = columna + 1; i < 8 && j < 8; i++, j++) {
            System.out.println((char) ('a' + j) + "" + (8 - i));
        }
    }

    public static int[] solicitarPosicion(Scanner sc) {
        int[] posicion = new int[2];
        while (true) {
            System.out.print("Introduzca la posición del alfil (e4 por ejemplo): ");
            String pos = sc.nextLine();
            if (pos.charAt(0) >= 'a' && pos.charAt(0) <= 'h') {
                posicion[1] = pos.charAt(0) - 'a';
            } else {
                System.out.println("No ha introducido una letra de columna correcta");
            }

            int num = (pos.charAt(1) - '0');

            if (num >= 1 && num <= 8) {
                posicion[0] = 8 - num;
            } else {
                System.out.println("No ha introducido un número de fila correcto.");
            }

            if (posicion[0] >= 0 && posicion[0] < 8 && posicion[1] >= 0 && posicion[1] < 8) {
                break;
            }
        }
        return posicion;
    }
}
