예제 #1
0
파일: Torre.cs 프로젝트: oscarpavon/ajedrez
        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);
        }
예제 #2
0
        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);
        }