public override Casilla[] MovimientosDesdeEstado(EstadoDeJuego estado) { string casillaAct = null; foreach (EstadoDeJuego.PiezaDeEstado pieza in estado.ListaDePiezasDeEstado) { if (pieza.id == this.id) { casillaAct = pieza.Casilla; } } //Debug.Log("Casilla desde donde se va calcular " + casillaAct); string[] frente = Repetir(8, casillaAct, "Frente"); string[] atras = Repetir(8, casillaAct, "Atras"); string[] izq = Repetir(8, casillaAct, "Izquierda"); string[] der = Repetir(8, casillaAct, "Derecha"); frente = Ajedrez.ValidadCasillas(frente); atras = Ajedrez.ValidadCasillas(atras); izq = Ajedrez.ValidadCasillas(izq); der = Ajedrez.ValidadCasillas(der); bool calcAmenazas = false; frente = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, frente, calcAmenazas); atras = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, atras, calcAmenazas); izq = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, izq, calcAmenazas); der = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, der, calcAmenazas); //Debug.Log("Cantidad frente " + frente.Length); List <string> pos = new List <string> (); pos.AddRange(frente); pos.AddRange(atras); pos.AddRange(izq); pos.AddRange(der); string[] posicionesposibles = pos.ToArray(); Casilla[] cass = Ajedrez.BuscarCasillas(posicionesposibles); return(cass); }
public override Casilla[] MovimientosDesdeEstado(EstadoDeJuego estado) { string casillaAct = null; foreach (EstadoDeJuego.PiezaDeEstado pieza in estado.ListaDePiezasDeEstado) { if (pieza.id == this.id) { casillaAct = pieza.Casilla; } } //Debug.Log (this.name + " " + "color "+ this.ColorPieza.ToString()+" "+"Casilla actual " + casillaAct); string[] frente = Repetir(8, casillaAct, "Diagonal Derecha"); string[] atras = Repetir(8, casillaAct, "Diagonal Izquierda"); string[] izq = Repetir(8, casillaAct, "Diagonal Izquierda Abajo"); string[] der = Repetir(8, casillaAct, "Diagonal Derecha Abajo"); frente = Ajedrez.ValidadCasillas(frente); atras = Ajedrez.ValidadCasillas(atras); izq = Ajedrez.ValidadCasillas(izq); der = Ajedrez.ValidadCasillas(der); bool calcAmenazas = false; frente = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, frente, calcAmenazas); atras = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, atras, calcAmenazas); izq = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, izq, calcAmenazas); der = Ajedrez.CasillasHastaQueEsteOcupadaEnEstado(estado, this, der, calcAmenazas); List <string> pos = new List <string> (); pos.AddRange(frente); pos.AddRange(atras); pos.AddRange(izq); pos.AddRange(der); string[] posicionesposibles = pos.ToArray(); Casilla[] cass = Ajedrez.BuscarCasillas(posicionesposibles); return(cass); }