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. }
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(); }