/** Crea y ejecuta un movimiento aleatorio */ public void ponerAleatorio() { Movimiento mov = factoria.creaJugadorAleatorio().getMovimiento(partida.getTablero(), partida.getTurno()); try { getPartida().ejecutaMovimiento(mov); } catch (MovimientoInvalido e) { System.err.println(e.getMessage()); } }
/** * Dependiendo del array introducido creara un tipo de juego u otro * * @param frase array de string con el posible juego a cambiar (y dimensiones si procede) */ public void opcCambiarJuego(String[] frase) { boolean error = true; if (frase.length == 3 || frase.length == 5) { if (frase[1].equalsIgnoreCase("c4")) { jugarC4(Integer.parseInt(frase[2])); error = false; } else if (frase[1].equalsIgnoreCase("co")) { jugarCo(Integer.parseInt(frase[2])); error = false; } else if (frase[1].equalsIgnoreCase("rv")) { jugarRv(Integer.parseInt(frase[2])); error = false; } else if (frase.length == 5 && frase[1].equalsIgnoreCase("gr")) { jugarGravity(frase); error = false; } else if (frase.length == 5 && frase[1].equalsIgnoreCase("tr")) { jugarTresRaya(frase); error = false; } } if (error) { System.err.println("No te entiendo."); partida.refrescar(); } else { reiniciarPartida(); } }
/** * Cambia de juego segun las indicaciones del jugador * * @param juego * @param col * @param fil */ public void cambiarJuego(String juego, int col, int fil) { FactoriaTipoJuego nuevaFactoria; // Se crea una nueva factoría dependiendo del juego al que se desee // cambiar if (juego.equals("conecta4")) { nuevaFactoria = new FactoriaConecta4(); } else if (juego.equals("complica")) { nuevaFactoria = new FactoriaComplica(); } else if (juego.equals("gravity")) { nuevaFactoria = new FactoriaGravity(col, fil); } else nuevaFactoria = new FactoriaReversi(); // Se reinicia el propio Controlador y la partida en curso: this.reset(nuevaFactoria); partida.reset(factoria.creaReglas()); }
/** * Se encarga de controlar la parte de ejecución de un movimiento(cuando el usuario introduce * poner) */ public void opcPoner() { try { if (this.partida.getTurno() == Ficha.NEGRA) { this.jugturno = jugnegras; } else { this.jugturno = jugblancas; } this.partida.poner(this.jugturno); } catch (MovimientoInvalido e) { System.err.println(e.getMessage()); } catch (InputMismatchException e) { System.err.println("Columna incorrecta."); this.in.nextLine(); partida.refrescar(); } ; }
/** Reinicia la partida sin cambiar de juego */ public void resetPartida() { partida.reset(partida.getReglas()); }
public void addObservador(Observer v) { partida.addObserver(v); }
public void opcPasarTurno() { this.partida.pasaTurno(); partida.refrescar(); }