Beispiel #1
0
        /// <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 ();
        }
Beispiel #2
0
        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 ();
        }
Beispiel #3
0
        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 ();
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        /// <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);
        }
Beispiel #6
0
        /// <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());
        }