예제 #1
0
  public static boolean isJugadorAhogado(int turno, Tablero tbl) {

    CuadroPieza cuadroDestino = null;
    CuadroPieza cuadroActual = null;
    /*
     * En sintesis, lo que se hace aqui es recorrer todas las piezas, y comparar si tienen algun movimiento posible, a alguna posicion del tablero.
     * Para recorrer todas las piezas uso los dos primeros for.
     * Para recorrer los cuadros posibles a los que se puede mover, uso los 2 siguientes for.
     */
    for (int x = 0;
        x < 8;
        x++) { // Busco todas las piezas del jugador del que quiero saber si esta ahogado.
      for (int y = 0; y < 8; y++) {
        cuadroActual = tbl.getTablero()[y][x];
        if (cuadroActual.getPieza()
            != null) { // Si hay una pieza en el cuadro selecciondo actualmente por el for.
          if (cuadroActual.getPieza().getColor()
              == turno) { // Reviso que sea del color de pieza, que del jugador que quiero averiguar
                          // si esta ahogado.
            for (int x1 = 0;
                x1 < 8;
                x1++) { // Recorro todos los cuadros a del tablero preguntandole si puede moverse a
                        // ese cuadro
              for (int y1 = 0; y1 < 8; y1++) {
                cuadroDestino = tbl.getTablero()[y1][x1];
                if (cuadroActual
                    .getPieza()
                    .validarMovimiento(
                        cuadroDestino,
                        tbl)) { // Si hay un movimiento posible, entonces no esta ahogado
                  return false;
                }
              }
            }
          }
        }
      }
    }
    return true; // Si no encontro algun movimiento posible, pues el usuario esta ahogado, y retorno
                 // true.
  }
예제 #2
0
  public static void mostrarTablero(Tablero tablero) {
    Pieza[][] tab = tablero.getTablero();

    clearConsole();

    System.out.println();
    System.out.println("   1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ");

    for (int f = 0; f < tablero.getFilas(); f++) {
      System.out.print(f + 1);

      for (int c = 0; c < tablero.getColumnas(); c++) {
        if (tab[f][c] == null) {
          System.out.print("  - ");
        } else {
          System.out.print("  " + tab[f][c].getRepresentacion() + " ");
        }
      }

      System.out.println();
    }

    System.out.println();
  }