/// <summary> /// Crea los peones en sus posiciones iniciales /// </summary> void CrearPeones() { Pieza[] peones = new Pieza[16]; for (int i = 0; i <= 7; i++) { peones[i] = new Pieza(); Juego.Pieza pie = peones[i].CrearPieza("Peon", CasillaPeonesClaros[i].posicion); peones[i].PonerColor("Claro"); ListaDePiezas.Add(pie); ListaDePiezas[ListaDePiezas.Count - 1].id = ListaDePiezas.Count - 1; pie.gameObject.transform.SetParent(Piezas.transform); pie.GetComponent <Juego.Peon> ().posInicial = CasillaPeonesClaros[i].casilla.GetComponent <Juego.Casilla> (); } for (int i = 0; i <= 7; i++) { peones[i] = new Pieza(); Juego.Pieza pie = peones[i].CrearPieza("Peon", CasillaPeonesOscuros[i].posicion); peones[i].PonerColor("Oscuro"); ListaDePiezas.Add(pie); ListaDePiezas[ListaDePiezas.Count - 1].id = ListaDePiezas.Count - 1; pie.gameObject.transform.SetParent(Piezas.transform); pie.GetComponent <Juego.Peon> ().posInicial = CasillaPeonesOscuros[i].casilla.GetComponent <Juego.Casilla> (); } //piezas = ListaDePiezas.ToArray (); }
public void CrearPieza(string piezaAcrear, string pos1, string color) { Juego.Casilla casilla = BuscarCasilla(pos1); Pieza pieza = new Pieza(); Juego.Pieza piezaJuego = pieza.CrearPieza(piezaAcrear, casilla.posicion); pieza.PonerColor(color); pieza.PiezaPrincipal.transform.SetParent(Piezas.transform); ListaDePiezas.Add(piezaJuego); ListaDePiezas[ListaDePiezas.Count - 1].id = ListaDePiezas.Count - 1; //piezas = ListaDePiezas.ToArray (); }
public void CrearDosPiezas(string piezaAcrear, string pos1, string pos2) { Juego.Casilla casilla = BuscarCasilla(pos1); Pieza piezaBlanca = new Pieza(); Pieza piezaOscura = new Pieza(); Juego.Pieza pieza1 = piezaBlanca.CrearPieza(piezaAcrear, casilla.posicion); piezaBlanca.PonerColor("Claro"); casilla = BuscarCasilla(pos2); Juego.Pieza pieza2 = piezaOscura.CrearPieza(piezaAcrear, casilla.posicion); piezaOscura.PonerColor("Oscuro"); piezaOscura.PiezaPrincipal.transform.SetParent(Piezas.transform); piezaBlanca.PiezaPrincipal.transform.SetParent(Piezas.transform); ListaDePiezas.Add(pieza1); ListaDePiezas[ListaDePiezas.Count - 1].id = ListaDePiezas.Count - 1; ListaDePiezas.Add(pieza2); ListaDePiezas[ListaDePiezas.Count - 1].id = ListaDePiezas.Count - 1; //piezas = ListaDePiezas.ToArray (); }
public static string[] CasillasHasta(Juego.Pieza pieza, string[] Casillas) { int cantidad = 0; foreach (string casBus in Casillas) { Juego.Casilla cas = BuscarCasilla(casBus); if (!cas.Ocupada) { cantidad++; break; } else { if (pieza.name != "Peon") { if (cas.pieza.ColorPieza != pieza.ColorPieza) { cantidad++; //cas.Ocupable = true; } else //pieza mismo color { if (cantidad >= 1) { cantidad--; } } } break; } } string[] posibles = new string[cantidad]; for (int i = 0; i < posibles.Length; i++) { posibles[i] = Casillas[i]; } return(posibles); }
/// <summary> /// Deja de marcar las casillas cuando hay algo en el camino /// </summary> /// <param name="pieza"></param> /// <param name="Casillas"></param> /// <param name="calcAmenazas">Si es true devuelve una cacilla mas que esta ocupada por un pieza de igual color</param> /// <returns></returns> public static string[] CasillasHastaQueEsteOcupadaEnEstado(EstadoDeJuego estado, Juego.Pieza pieza, string[] Casillas, bool calcAmenazas) { int cantidad = 0; foreach (string casBus in Casillas) { EstadoDeJuego.CasillaDeEstado cas = estado.BuscarCasilla(casBus); //Debug.Log("Se encontro la casilla " + cas.Nombre); //Debug.Log("Ocupada? " + cas.EstaOcupada.ToString()); if (!cas.EstaOcupada) { cantidad++; } else { if (pieza.ColorPieza == cas.pieza.ColorPieza) { if (calcAmenazas) { cantidad++; } } if (pieza.name != "Peon") { if (cas.pieza.ColorPieza != pieza.ColorPieza) { cantidad++; //cas.Ocupable = true; } } break; } } string[] posibles = new string[cantidad]; for (int i = 0; i < posibles.Length; i++) { posibles[i] = Casillas[i]; } return(posibles); }
/// <summary> /// No marca si la cacilla esta ocupada o amenazada /// </summary> /// <param name="pieza"></param> /// <param name="Casillas"></param> /// <returns></returns> public static Juego.Casilla[] CacillaOcupada(Juego.Pieza pieza, Juego.Casilla[] Casillas) { List <Juego.Casilla> listacasillas = new List <Juego.Casilla> (); foreach (Juego.Casilla casilla in Casillas) { Juego.Casilla cas = casilla; listacasillas.Add(cas); if (cas.Ocupada) { listacasillas.Remove(cas); if (pieza.name == "Caballo") { if (cas.pieza.ColorPieza != pieza.ColorPieza) { listacasillas.Add(cas); cas.Ocupable = true; } } if (pieza.name == "Rey") { if (cas.pieza.ColorPieza != pieza.ColorPieza) { if (pieza.ColorPieza == Juego.color.Claro) { if (cas.AmenazadaPorOscuros.Count < 1) { cas.Ocupable = false; listacasillas.Add(cas); } else { listacasillas.Remove(cas); } } else { if (cas.AmenazadaPorClaros.Count < 1) { cas.Ocupable = false; listacasillas.Add(cas); } else { listacasillas.Remove(cas); } } } else { listacasillas.Remove(cas); } } if (pieza.name == "Peon") { if (cas.pieza.ColorPieza != pieza.ColorPieza) { if (cas.marcar) { listacasillas.Add(cas); cas.Ocupable = true; } } else { listacasillas.Remove(cas); } } } } return(listacasillas.ToArray()); }