/** 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());
    }
  }
Ejemplo n.º 2
0
  /**
   * 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());
  }
Ejemplo n.º 4
0
 /**
  * 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());
 }
Ejemplo n.º 6
0
 public void addObservador(Observer v) {
   partida.addObserver(v);
 }
Ejemplo n.º 7
0
 public void opcPasarTurno() {
   this.partida.pasaTurno();
   partida.refrescar();
 }