public void run() { inicializar(); boolean turno_rojo = true; int color; Movimiento m; // La partida se desarrolla hasta que el tablero esté lleno o ya no se puedan tirar más veces // (por ejemplo porque alguno de los jugadores se haya quedado sin fichas) while (!t.estaLleno() && (t.puedeTirar(1) || t.puedeTirar(2))) { m = null; color = 0; // Lo que se hace realmente es esperar el movimiento devuelto por el método run tanto // del humano como de la máquina if (turno_rojo) { if (t.puedeTirar(1)) { jugador1.setTablero(t); jugador1.setCanvas(C); m = jugador1.run(); color = 1; } else { System.out.println("El jugador rojo no puede tirar"); } } else { if (t.puedeTirar(2)) { jugador2.setTablero(t); m = jugador2.run(); color = 2; } else { System.out.println("El jugador amarillo no puede tirar"); } } turno_rojo = !turno_rojo; if (m != null) { t.ponerFicha(m.columna, m.fila, color); C.setTablero(t); C.repaint(); } } switch (t.ganador()) { case 0: System.out.println("Ha habido un empate"); break; case 1: System.out.println("Ha ganado el jugador rojo"); break; case 2: System.out.println("Ha ganado el jugador amarillo"); break; } // Con esto la partida termina y se activa el botón de comenzar una nueva partida. b1.setEnabled(true); b2.setEnabled(false); }