Exemple #1
0
        List <Movimiento> TodosLosMovimientosDelContrario(EstadoDeJuego estado)
        {
            //obtener todos los movimientos posibles de las piezas de IA
            List <Movimiento> movimientos = new List <Movimiento> ();

            //Debug.Log ("cantida pieza blancas " + idPiezaClaras.Count.ToString ());
            //Debug.Log ("piezas activas claras" + estado.PiezasActivasClaras.Count.ToString ());
            foreach (int pieza in estado.IdsActivosPiezasClaras)
            {
                Partida.ListaDePiezas[pieza].CasillaAnterior = Partida.ListaDePiezas[pieza].casilla;
                List <Movimiento> movPieza = Partida.ListaDePiezas[pieza].JugadasPosiblesDesdeEstado(estado);

                if (movPieza.Count >= 1)
                {
                    movimientos.AddRange(movPieza);
                }
            }

            return(movimientos);
        }
Exemple #2
0
        void MejorMovBlancas(EstadoDeJuego estado)
        {
            estado.MostrarPiezasEnSusPosiciones();              //coloca las posiciones del estado actual
            List <Movimiento> movsContra   = TodosLosMovimientosDelContrario(estado);
            Movimiento        mejorBlancas = null;
            int mejorValorBlancas          = 999;

            foreach (Movimiento mov in movsContra)
            {
                //mov.estadoFinal.Presentar ();

                int valorMovBlanca = mov.Valor;
                if (valorMovBlanca < mejorValorBlancas)
                {
                    mejorValorBlancas = valorMovBlanca;
                    mejorBlancas      = mov;
                    cantidadAnalisisContrario++;
                }
            }
            Debug.LogWarning("mejor mov blanca " + mejorBlancas.CasillaElegida.nombre);
        }
Exemple #3
0
        static List <Movimiento> CalcularMovimientosDesdeListaDePiezasEnEstado(List <int> ListaDeIdsPiezas, EstadoDeJuego estado)
        {
            List <Movimiento> TodosLosMovimientosDeLaListaDePiezas = new List <Movimiento> ();

            ActualizarPosicionesDePiezas(estado);
            foreach (int idPieza in ListaDeIdsPiezas)
            {
                Partida.ListaDePiezas[idPieza].CasillaAnterior = Partida.ListaDePiezas[idPieza].casilla;

                List <Movimiento> MovimientosDeUnaPieza = Partida.ListaDePiezas[idPieza].JugadasPosiblesDesdeEstado(estado);

                if (MovimientosDeUnaPieza.Count >= 1)
                {
                    TodosLosMovimientosDeLaListaDePiezas.AddRange(MovimientosDeUnaPieza);
                }
            }
            return(TodosLosMovimientosDeLaListaDePiezas);
        }
Exemple #4
0
        public static List <Movimiento> CalcularMovimientosPorColorEnEstado(Juego.color color, EstadoDeJuego estado)
        {
            List <Movimiento> movimientos = new List <Movimiento> ();

            if (color == color.Claro)
            {
                movimientos = CalcularMovimientosDesdeListaDePiezasEnEstado(estado.IdsActivosPiezasClaras, estado);
            }
            else
            {
                movimientos = CalcularMovimientosDesdeListaDePiezasEnEstado(estado.IdsActivosPiezasOscuras, estado);
            }
            return(movimientos);
        }
Exemple #5
0
 public virtual Casilla[] MovimientosDesdeEstado(EstadoDeJuego estado)
 {
     return(null);
 }