示例#1
0
 /* este método utiliza NegaMax y algoritmos genéticos.*/
 public Point evaluarMovida() {
   BuscadorAbstracto buscador;
   buscador = new NegaMax();
   Evaluacion funcionEvaluacion; // = new EvaluacionEstrategica(estrategia, tablero);
   Point punto;
   if (this.turno == Turno.NEGRAS) {
     funcionEvaluacion = new EvaluacionEstrategica(jugadorNegro.getEstrategia());
     punto =
         buscador
             .busquedaSimple(
                 tablero,
                 tablero.obtenerTipoTablero(),
                 jugadorNegro.color(),
                 profundidad,
                 funcionEvaluacion)
             .obtenerPunto();
   } else {
     funcionEvaluacion = new EvaluacionEstrategica(jugadorBlanco.getEstrategia());
     punto =
         buscador
             .busquedaSimple(
                 tablero,
                 tablero.obtenerTipoTablero(),
                 jugadorBlanco.color(),
                 profundidad,
                 funcionEvaluacion)
             .obtenerPunto();
   }
   return punto;
 }
示例#2
0
  public Set<Point> hacerMovimiento(Point movida) {
    Set<Point> puntos;
    if (this.turno == Turno.NEGRAS) {
      puntos = tablero.hacerMovimiento(movida, jugadorNegro.color());
      jugadorNegro.setPuntaje(tablero.contar(EstadoCasilla.BLACK));
    } else {
      puntos = tablero.hacerMovimiento(movida, jugadorBlanco.color());
      jugadorBlanco.setPuntaje(tablero.contar(EstadoCasilla.WHITE));
    }

    porcentajeEsquinas(tablero, tablero.obtenerTipoTablero(), jugadorActual().color());
    // porcentajeCasillasCentrales(tablero, jugadorActual().color());

    /**/

    /*EvaluacionEstrategica funcionEvaluacion = new EvaluacionEstrategica(jugadorActual().getEstrategia());
    double fx = funcionEvaluacion.evaluar(tablero, tablero.obtenerTipoTablero(), jugadorActual().color());
    System.out.println(jugadorActual().color()+" -> "+ fx + " = "
    		+jugadorActual().getEstrategia()[0] + "*"+funcionEvaluacion.getX1()+" + "
    		+jugadorActual().getEstrategia()[1] + "*"+funcionEvaluacion.getX2()+" - "
    		+jugadorActual().getEstrategia()[2] + "*"+funcionEvaluacion.getX3()+" + "
    		+jugadorActual().getEstrategia()[3] + "*"+funcionEvaluacion.getX4()
    		);*/

    // System.out.println("Esquinas de Negro = " + esquinasNegro);
    // System.out.println("Esquinas de Blanco = " + esquinasBlanco);
    /*System.out.println("Centrales de Negro = " + centralesNegro);
    System.out.println("Centrales de Blanco = " + centralesBlanco);*/
    return puntos;
  }
示例#3
0
 public boolean esEmpate() {
   return jugadorNegro.getPuntaje() == jugadorBlanco.getPuntaje();
 }
示例#4
0
 public Jugador obtenerGanador() {
   return jugadorNegro.getPuntaje() < jugadorBlanco.getPuntaje() ? jugadorBlanco : jugadorNegro;
 }
示例#5
0
 public int obtenerPuntajeBlanco() {
   jugadorBlanco.setPuntaje(tablero.contar(EstadoCasilla.WHITE));
   return jugadorBlanco.getPuntaje();
 }
示例#6
0
 public int obtenerPuntajeNegro() {
   jugadorNegro.setPuntaje(tablero.contar(EstadoCasilla.BLACK));
   return jugadorNegro.getPuntaje();
 }
示例#7
0
 public void setEstrategiaJugadores(int[] estrategiaNegro, int[] estrategiaBlanco) {
   jugadorBlanco.setEstrategia(estrategiaBlanco);
   jugadorNegro.setEstrategia(estrategiaNegro);
 }