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
} //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; } }
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
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(); } }