Files
ejs-programacion/src/capitulo04/bloque08/Ejercicio05.java

62 lines
2.0 KiB
Java

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