コード例 #1
0
 static void CrearTablero()
 {
     for (int f = 0; f < 8; f++)
     {
         for (int c = 0; c < 8; c++)
         {
             Tablero[f, c] = new PiezaVacia();
         }
     }
 } //Crear un array normal de piezas
コード例 #2
0
ファイル: Program.cs プロジェクト: UAI-VG/LUG2017.Romeo
        } //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;
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: UAI-VG/LUG2017.Romeo
        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
コード例 #4
0
ファイル: Rey.cs プロジェクト: UAI-VG/LUG2017.Romeo
        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();
            }
        }