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); }
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); }
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); }
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); }
public virtual Casilla[] MovimientosDesdeEstado(EstadoDeJuego estado) { return(null); }