public ComandoMover(Pieza p, Coordenada PosInicial, Coordenada PosFinal, Pieza[,] Tablero, List <Coordenada> ListaBlanco, List <Coordenada> ListaNegros) { this.p = p; this.PosInicial = PosInicial; this.PosFinal = PosFinal; this.Tablero = Tablero; p.CalcularMovimientos(Tablero, PosInicial, ListaBlanco, ListaNegros, p.Color); ListaMovBlancos = ListaBlanco; ListaMovNegros = ListaNegros; }
} //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; } }
//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; } }