Ejercicio Capitulo 04 bloque08 ejercicio opcional 5
This commit is contained in:
61
src/capitulo04/bloque08/Ejercicio05.java
Normal file
61
src/capitulo04/bloque08/Ejercicio05.java
Normal file
@@ -0,0 +1,61 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user