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; } }