Advertisement
LEANDRONIEVA

caballoajedrez

Sep 13th, 2023
1,084
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.58 KB | None | 0 0
  1.  
  2. public class CaballoAjedrez {
  3.  
  4.     private int X;
  5.     private int Y;
  6.     private int[] movimientosFilas = {2, 1, -1, -2, -2, -1, 1, 2};
  7.     private int[] movimientosColumnas = {1, 2, 2, 1, -1, -2, -2, -1};
  8.    
  9.     public CaballoAjedrez(int X, int Y) {
  10.         this.X = X;
  11.         this.Y = Y;
  12.     }
  13.  
  14.     public void mover(char[][] tablero) {
  15.         int i = Helper.random.nextInt(8);
  16.         int nuevaFila = X + movimientosFilas[i];
  17.         int nuevaColumna = Y + movimientosColumnas[i];
  18.        
  19.         while (!esMovValido(nuevaFila,nuevaColumna)) {
  20.             i = Helper.random.nextInt(8);
  21.             nuevaFila = X + movimientosFilas[i];
  22.             nuevaColumna = Y + movimientosColumnas[i];
  23.         }
  24.        
  25.         this.X = nuevaFila;
  26.         this.Y = nuevaColumna;
  27.     }
  28.    
  29.     public void mostrarTablero(char[][] tablero) {
  30.         tablero[X][Y]='H';
  31.        
  32.         for(int i =0; i<8;i++) {
  33.             int nuevaFila = X + movimientosFilas[i];
  34.             int nuevaColumna = Y + movimientosColumnas[i];
  35.             if (esMovValido(nuevaFila,nuevaColumna)) {
  36.                 tablero[nuevaFila][nuevaColumna]= '+';
  37.             }
  38.         }
  39.         for(int i =0; i<tablero.length;i++) {
  40.             for (int j = 0; j < tablero[i].length; j++) {
  41.                 System.out.print(tablero[i][j] + " ");
  42.             }
  43.             System.out.println();
  44.         }
  45.         System.out.println();
  46.         this.limpiarTablero(tablero);
  47.     }
  48.    
  49.     private boolean esMovValido(int fila, int columna) {
  50.         return (fila >= 0 && fila < 10 && columna >= 0 && columna < 10);
  51.     }
  52.    
  53.     private void limpiarTablero(char[][] tablero) {
  54.        
  55.         for (int i = 0; i < 10; i++) {
  56.             for (int j = 0; j < 10; j++) {
  57.                 tablero[i][j] = '-';
  58.             }
  59.         }
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement