62 lines
2.0 KiB
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;
|
|
}
|
|
}
|