示例#1
0
        } //Crear un array normal de piezas

        static void CrearTableroLeyendo()
        {
            for (int f = 0; f < 8; f++)
            {
                for (int c = 0; c < 8; c++)
                {
                    Tablero[f, c] = new PiezaVacia();
                }
            }

            foreach (string s in Text)
            {
                Pieza p = null;
                int   x = new int();
                int   y = new int();

                if (s[0] == 'R')
                {
                    p = new Rey();
                }
                else if (s[0] == 'A')
                {
                    p = new Alfil();
                }
                else if (s[0] == 'C')
                {
                    p = new Caballo();
                }
                else if (s[0] == 'r')
                {
                    p = new Reina();
                }
                else if (s[0] == 'P')
                {
                    p = new Peon();
                }
                else if (s[0] == 'T')
                {
                    p = new Torre();
                }
                else if (s[0] == '*')
                {
                    p = new PiezaVacia();
                }

                char n = s[1];

                if (n == 'a')
                {
                    x = 0;
                }
                else if (n == 'b')
                {
                    x = 1;
                }
                else if (n == 'c')
                {
                    x = 2;
                }
                else if (n == 'd')
                {
                    x = 3;
                }
                else if (n == 'e')
                {
                    x = 4;
                }
                else if (n == 'f')
                {
                    x = 5;
                }
                else if (n == 'g')
                {
                    x = 6;
                }
                else if (n == 'h')
                {
                    x = 7;
                }

                if (s[2] == '1')
                {
                    y = 0;
                }
                else if (s[2] == '2')
                {
                    y = 1;
                }
                else if (s[2] == '3')
                {
                    y = 2;
                }
                else if (s[2] == '4')
                {
                    y = 3;
                }
                else if (s[2] == '5')
                {
                    y = 4;
                }
                else if (s[2] == '6')
                {
                    y = 5;
                }
                else if (s[2] == '7')
                {
                    y = 6;
                }
                else if (s[2] == '8')
                {
                    y = 7;
                }

                p.Color       = s[3];
                p.Posicion    = new Coordenada(x, y);
                Tablero[x, y] = p;
            }
        }
示例#2
0
        static void CrearTablero()
        {
            for (int f = 0; f < 8; f++)
            {
                for (int c = 0; c < 8; c++)
                {
                    Tablero[f, c] = new PiezaVacia();
                }
            }

            for (int i = 0; i < 8; i++)
            {
                Tablero[1, i]       = new Peon();
                Tablero[1, i].Color = 'N';

                Tablero[6, i]       = new Peon();
                Tablero[6, i].Color = 'B';
            } //Peones

            Tablero[0, 0]       = new Torre();
            Tablero[0, 0].Color = 'N';
            Tablero[0, 7]       = Tablero[0, 0];

            Tablero[7, 0]       = new Torre();
            Tablero[7, 0].Color = 'B';
            Tablero[7, 7]       = Tablero[7, 0];

            Tablero[0, 6]       = new Caballo();
            Tablero[0, 6].Color = 'N';
            Tablero[0, 1]       = Tablero[0, 6];

            Tablero[7, 6]       = new Caballo();
            Tablero[7, 6].Color = 'B';
            Tablero[7, 1]       = Tablero[7, 6];

            Tablero[0, 5]       = new Alfil();
            Tablero[0, 5].Color = 'N';
            Tablero[0, 2]       = Tablero[0, 5];

            Tablero[7, 5]       = new Alfil();
            Tablero[7, 5].Color = 'B';
            Tablero[7, 2]       = Tablero[7, 5];

            Tablero[0, 4]       = new Reina();
            Tablero[0, 4].Color = 'N';
            Tablero[0, 3]       = new Rey();
            Tablero[0, 3].Color = 'N';

            Tablero[7, 3]       = new Reina();
            Tablero[7, 3].Color = 'B';
            Tablero[7, 4]       = new Rey();
            Tablero[7, 4].Color = 'B';

            for (int f = 0; f < 8; f++)
            {
                for (int c = 0; c < 8; c++)
                {
                    Tablero[f, c].Posicion = new Coordenada(f, c);
                }
            }
        } //Crear un array normal de piezas
示例#3
0
        //Aca empieza el bardo
        static void PonerPieza()
        {
            Pieza Pieza = null; //Crea una pieza y la setea como null para despues asignarle la clase que el jugador elija

            Console.WriteLine();
            Console.WriteLine("Qué Pieza Quiere Poner? 'T'(Torre) / 'R' (Rey) / 'A' (Alfil) / 'h' (Reina) / 'C' (Caballo) / 'P' (Peon) ");
            char Opcion = char.Parse(Console.ReadLine());

            if (Opcion == 't' || Opcion == 'T')
            {
                Pieza = new Torre();
            }
            else if (Opcion == 'r' || Opcion == 'R')
            {
                Pieza = new Rey();
            }
            else if (Opcion == 'a' || Opcion == 'A')
            {
                Pieza = new Alfil();
            }
            else if (Opcion == 'h' || Opcion == 'H')
            {
                Pieza = new Reina();
            }
            else if (Opcion == 'c' || Opcion == 'C')
            {
                Pieza = new Caballo();
            }
            else if (Opcion == 'p' || Opcion == 'P')
            {
                Pieza = new Peon();
            }
            //Segun la letra ingresada es una clase u otra

            //Lo mismo con el color
            Console.WriteLine("De que color? 'B' (Blanca) / 'N' (Negra)");
            char OpcionC = char.Parse(Console.ReadLine());

            if (OpcionC == 'b' || OpcionC == 'B')
            {
                Pieza.Color = 'B';
            }
            else if (OpcionC == 'n' || OpcionC == 'N')
            {
                Pieza.Color = 'N';
            }

            //La funcion ObtenerCoordenadas esta arriba comentada, la pieza creada obtiene su posicion de esta funcion
            Pieza.Posicion = ObtenerCoordenadas();

            //Estos son los 3 casos posibles (la posicion esta ocupada por una pieza de tu color, por una de otro color o por nadie)
            if (Tablero[Pieza.Posicion.X, Pieza.Posicion.Y] is PiezaVacia)
            {
                Tablero[Pieza.Posicion.X, Pieza.Posicion.Y].Img = Pieza.Img;                                            //Se muestra en el tablero donde pusiste la pieza
                Pieza.CalcularMovimientos(Tablero, Pieza.Posicion, MovPosiblesBlancos, MovPosiblesNegros, Pieza.Color); //Se calculan los mov de esta
                Console.ReadKey();
            }
            else if (Tablero[Pieza.Posicion.X, Pieza.Posicion.Y].Color == Pieza.Color)
            {
                //No pasa nada
                Console.WriteLine("El Casillero esta ocupado por una pieza de tu color");
                Console.ReadKey();
            }
            else if (Tablero[Pieza.Posicion.X, Pieza.Posicion.Y].Color != Pieza.Color)
            {
                //Hace lo mismo que la primer condicion pero te tira un mensaje
                Console.WriteLine("Comiste una pieza de otro color");
                Console.ReadKey();
                Pieza.CalcularMovimientos(Tablero, Pieza.Posicion, MovPosiblesBlancos, MovPosiblesNegros, Pieza.Color);
                Tablero[Pieza.Posicion.X, Pieza.Posicion.Y] = Pieza;
            }
        }
示例#4
0
        void UbicarRey(Pieza[,] Tablero, Coordenada Coordenadas, List <Coordenada> ListaBlanca, List <Coordenada> ListaNegra, char Color)
        {
            //Cada try/catch corresponde a un enroque, basicamente, si tiene una torre al rango, se modifican sus posiciones
            //Enroque largo************************************
            try
            {
                if (Tablero[Coordenadas.X, Coordenadas.Y - 3] is Torre && Tablero[Coordenadas.X, Coordenadas.Y - 3].Color == Color)
                {
                    Console.WriteLine("Desea Realizar un enroque? (s)Si / (n)No");
                    char Opcion = char.Parse(Console.ReadLine());

                    if (Opcion == 's')
                    {
                        Pieza torre = new Torre();
                        Pieza vacio = new PiezaVacia();
                        vacio.Img = '*';
                        Tablero[Coordenadas.X, Coordenadas.Y].Img = '*';
                        torre = Tablero[Coordenadas.X, Coordenadas.Y - 3];
                        Tablero[Coordenadas.X, Coordenadas.Y - 3]     = vacio;
                        Tablero[Coordenadas.X, Coordenadas.Y - 1]     = torre;
                        Tablero[Coordenadas.X, Coordenadas.Y - 1].Img = 'T';
                        Coordenadas.Y -= 2;
                    }
                    else
                    {
                    }
                }
            }
            catch (IndexOutOfRangeException) { }

            try
            {
                if (Tablero[Coordenadas.X, Coordenadas.Y + 3] is Torre && Tablero[Coordenadas.X, Coordenadas.Y + 3].Color == Color)
                {
                    Console.WriteLine("Desea Realizar un enroque? (s)Si / (n)No");
                    char Opcionb = char.Parse(Console.ReadLine());

                    if (Opcionb == 's')
                    {
                        Pieza torre = new Torre();
                        Pieza vacio = new PiezaVacia();
                        vacio.Img = '*';
                        Tablero[Coordenadas.X, Coordenadas.Y].Img = '*';
                        torre = Tablero[Coordenadas.X, Coordenadas.Y + 3];
                        Tablero[Coordenadas.X, Coordenadas.Y + 3]     = vacio;
                        Tablero[Coordenadas.X, Coordenadas.Y + 1]     = torre;
                        Tablero[Coordenadas.X, Coordenadas.Y + 1].Img = 'T';
                        Coordenadas.Y += 2;
                    }
                    else
                    {
                    }
                }
            }
            catch (IndexOutOfRangeException) { }

            //Enroque corto*******************************

            try
            {
                if (Tablero[Coordenadas.X, Coordenadas.Y - 2] is Torre && Tablero[Coordenadas.X, Coordenadas.Y - 2].Color == Color)
                {
                    Console.WriteLine("Desea Realizar un enroque? (s)Si / (n)No");
                    char Opcion = char.Parse(Console.ReadLine());

                    if (Opcion == 's')
                    {
                        Pieza torre = new Torre();
                        Pieza vacio = new PiezaVacia();
                        vacio.Img = '*';
                        Tablero[Coordenadas.X, Coordenadas.Y].Img = '*';
                        torre = Tablero[Coordenadas.X, Coordenadas.Y - 2];
                        Tablero[Coordenadas.X, Coordenadas.Y - 2]     = vacio;
                        Tablero[Coordenadas.X, Coordenadas.Y - 1]     = torre;
                        Tablero[Coordenadas.X, Coordenadas.Y - 1].Img = 'T';
                        Coordenadas.Y -= 2;
                    }
                    else
                    {
                    }
                }
            }
            catch (IndexOutOfRangeException) { }

            try
            {
                if (Tablero[Coordenadas.X, Coordenadas.Y + 2] is Torre && Tablero[Coordenadas.X, Coordenadas.Y + 2].Color == Color)
                {
                    Console.WriteLine("Desea Realizar un enroque? (s)Si / (n)No");
                    char Opcion = char.Parse(Console.ReadLine());

                    if (Opcion == 's')
                    {
                        Pieza torre = new Torre();
                        Pieza vacio = new PiezaVacia();
                        vacio.Img = '*';
                        Tablero[Coordenadas.X, Coordenadas.Y].Img = '*';
                        torre = Tablero[Coordenadas.X, Coordenadas.Y + 2];
                        Tablero[Coordenadas.X, Coordenadas.Y + 2]     = vacio;
                        Tablero[Coordenadas.X, Coordenadas.Y + 1]     = torre;
                        Tablero[Coordenadas.X, Coordenadas.Y + 1].Img = 'T';
                        Coordenadas.Y += 2;
                    }
                    else
                    {
                    }
                }
            }
            catch (IndexOutOfRangeException) { }

            // No enroque
            try
            {
                if (Tablero[Coordenadas.X - 1, Coordenadas.Y - 1].Img == '*' || Tablero[Coordenadas.X - 1, Coordenadas.Y - 1].Color != this.Color)
                {
                    Tablero[Coordenadas.X - 1, Coordenadas.Y - 1].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                if (Tablero[Coordenadas.X - 1, Coordenadas.Y].Img == '*' || Tablero[Coordenadas.X - 1, Coordenadas.Y].Color != this.Color)
                {
                    Tablero[Coordenadas.X - 1, Coordenadas.Y].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                if (Tablero[Coordenadas.X - 1, Coordenadas.Y + 1].Img == '*' || Tablero[Coordenadas.X - 1, Coordenadas.Y + 1].Color != this.Color)
                {
                    Tablero[Coordenadas.X - 1, Coordenadas.Y + 1].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                if (Tablero[Coordenadas.X, Coordenadas.Y - 1].Img == '*' || Tablero[Coordenadas.X, Coordenadas.Y - 1].Color != this.Color)
                {
                    Tablero[Coordenadas.X, Coordenadas.Y - 1].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                if (Tablero[Coordenadas.X, Coordenadas.Y + 1].Img == '*' || Tablero[Coordenadas.X, Coordenadas.Y + 1].Color != this.Color)
                {
                    Tablero[Coordenadas.X, Coordenadas.Y + 1].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                if (Tablero[Coordenadas.X + 1, Coordenadas.Y - 1].Img == '*' || Tablero[Coordenadas.X + 1, Coordenadas.Y - 1].Color != this.Color)
                {
                    Tablero[Coordenadas.X + 1, Coordenadas.Y - 1].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                if (Tablero[Coordenadas.X + 1, Coordenadas.Y].Img == '*' || Tablero[Coordenadas.X + 1, Coordenadas.Y].Color != this.Color)
                {
                    Tablero[Coordenadas.X + 1, Coordenadas.Y].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }
            try
            {
                if (Tablero[Coordenadas.X + 1, Coordenadas.Y + 1].Img == '*' || Tablero[Coordenadas.X + 1, Coordenadas.Y + 1].Color != this.Color)
                {
                    Tablero[Coordenadas.X + 1, Coordenadas.Y + 1].Img = 'X';
                }
            }
            catch (IndexOutOfRangeException) { }

            Tablero[Coordenadas.X, Coordenadas.Y].Img = 'R';
            int    var    = 0;
            string letras = "ABCDEFGH";

            Console.Clear();
            Console.WriteLine("  1 2 3 4 5 6 7 8");
            for (int f = 0; f < 8; f++)
            {
                Console.Write(letras[var].ToString() + " ");
                var++;
                for (int c = 0; c < 8; c++)
                {
                    if (Tablero[f, c].Img == 'X')
                    {
                        Coordenada MovPos = new Coordenada(f, c);

                        /*   MovPos.X = f;
                         * MovPos.Y = c;
                         */
                        if (Color == 'B')
                        {
                            ListaBlanca.Add(MovPos);
                        }
                        else if (Color == 'N')
                        {
                            ListaNegra.Add(MovPos);
                        }
                    }
                    Console.Write(Tablero[f, c].Img + " ");
                }
                Console.WriteLine();
            }
        }