public Casilla[] Marcables() { string casillaAct = this.casillaActual; 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); frente = Ajedrez.CasillasHasta(this, frente); atras = Ajedrez.CasillasHasta(this, atras); izq = Ajedrez.CasillasHasta(this, izq); der = Ajedrez.CasillasHasta(this, der); 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); }
/// <summary> /// Calculas las cacillas a marcar(posibles movimientos) /// </summary> /// <param name="calcAmenazas">Si es true, calcula las cacillas a amenzar</param> /// <returns></returns> Casilla[] Casillas(bool calcAmenazas) { string casillaAct = this.casillaActual; 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); frente = Ajedrez.CasillasHasta(this, frente, calcAmenazas); atras = Ajedrez.CasillasHasta(this, atras, calcAmenazas); izq = Ajedrez.CasillasHasta(this, izq, calcAmenazas); der = Ajedrez.CasillasHasta(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); }
Juego.Casilla[] Posiciones() { string[] CasillasPosibles = new string[1]; string[] CasillaAmenazada1 = new string[1]; string[] CasillaAmenazada2 = new string[1]; string casillaAcual = this.casillaActual; //Movimientos Marcables Normales if (this.ColorPieza == color.Claro) { if (this.casilla == posInicial) { //Posibles movimientos //Dos pasos CasillasPosibles = Repetir(2, casillaAcual, "Frente"); CasillasPosibles = Ajedrez.CasillasHasta(this, CasillasPosibles); } else { CasillasPosibles = Repetir(1, casillaAcual, "Frente"); Casilla[] cas = Ajedrez.BuscarCasillas(CasillasPosibles); cas[0].marcar = false; casNoMarcables.Add(cas[0]); } } else { if (this.casilla == posInicial) { //Posibles movimientos //Dos pasos CasillasPosibles = Repetir(2, casillaAcual, "Atras"); CasillasPosibles = Ajedrez.CasillasHasta(this, CasillasPosibles); } else { CasillasPosibles = Repetir(1, casillaAcual, "Atras"); Casilla[] cas = Ajedrez.BuscarCasillas(CasillasPosibles); cas[0].marcar = false; casNoMarcables.Add(cas[0]); } } string[] comibles = PosicionesComibles(); List <string> posiciones = new List <string> (); if (CasComi && comibles != null) { posiciones.AddRange(CasillasPosibles); posiciones.AddRange(comibles); } else { posiciones.AddRange(CasillasPosibles); } //posiciones.AddRange (CasillaAmenazada1); //posiciones.AddRange (CasillaAmenazada2); string[] posicionesposibles = posiciones.ToArray(); posicionesposibles = Ajedrez.ValidadCasillas(posicionesposibles); Casilla[] cass = Ajedrez.BuscarCasillas(posicionesposibles); cass = Ajedrez.CacillaOcupada(this, cass); return(cass); }