public enum Color { BLANCA, NEGRA };
get { return this.color; }
get { return this.fila; }
set { this.fila = value; }
get { return this.columna; }
set { this.columna = value; }
public Pieza(Color color, int fila, int columna)
public const int COLUMNAS = 8;
public const int FILAS = 8;
private const int PIEZAS = 24;
this.pieza = new Pieza[PIEZAS];
Console.WriteLine("Creando tablero...");
for (int f = 0; f < FILAS; f++)
for (int c = 0; c < COLUMNAS; c++)
this.pieza[numPieza] = new Pieza(Color.NEGRA, f, c);
this.pieza[numPieza] = new Pieza(Color.BLANCA, f, c);
public void MuestraTablero()
Console.WriteLine("Mostrando tablero...");
for (int i = 0; i < FILAS; i++)
for (int j = 0; j < COLUMNAS; j++)
if (numPieza <= pieza.Length - 1 && pieza[numPieza].Fila == i && pieza[numPieza].Columna == j)
if (pieza[numPieza].ColorPieza == Color.BLANCA)
if (((i + j) % 2 == 0) && i > 2 && i < 5)
if (((i + j) % 2 != 0) && i > 2 && i < 5)
public string MoverPieza(int filaOrigen, int columnaOrigen, int filaDestino, int columnaDestino)
string msg = "Ficha no encontrada!";
Console.WriteLine("Moviendo...");
for (int i = 0; i < pieza.Length; i++)
if (filaOrigen == pieza[i].Fila && columnaOrigen == pieza[i].Columna)
Console.WriteLine("ENCONTRADA FICHA "+pieza[i].ColorPieza);
if (pieza[i].ColorPieza == Color.NEGRA)
if (filaDestino == filaOrigen +1)
msg = "EL MOVIMIENTO ES CORRECTO";
msg = "ERROR, NO PUEDES RETROCEDER";
if (pieza[i].ColorPieza == Color.BLANCA)
if (filaDestino == filaOrigen-1)
msg = "EL MOVIMIENTO ES CORRECTO";
msg = "ERROR, NO PUEDES RETROCEDER";
public static void Main()
Tablero tablero = new Tablero();
tablero.MuestraTablero();
Console.WriteLine("Introduzca la fila y columna origen y destino, valores entre 0 y 7: ");
Console.WriteLine(tablero.MoverPieza(Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine())));