public ChessBoard() : base(8, 8) { ConsoleColor[] colors = { ConsoleColor.Black, ConsoleColor.White }; /* * "I'M SO FANCY, YOU ALREADY KNOW" * AN USELESS BUT COOL WAY OF INITIALIZING THE BOARD WITH PIECES USING FOR LOOPS */ for (int team = 0; team < 2; team++) { for (int y = 0; y < 2; y++) { int mirrorY = Math.Abs((7 * team) - y); for (int x = 0; x < 4; x++) { switch (y) { case 0: switch (x) { case 0: _tiles[x, mirrorY] = new PieceRook(colors[team], this, new Position(x, mirrorY)); _tiles[7 - x, mirrorY] = new PieceRook(colors[team], this, new Position(7 - x, mirrorY)); break; case 1: _tiles[x, mirrorY] = new PieceKnight(colors[team], this, new Position(x, mirrorY)); _tiles[7 - x, mirrorY] = new PieceKnight(colors[team], this, new Position(7 - x, mirrorY)); break; case 2: _tiles[x, mirrorY] = new PieceBishop(colors[team], this, new Position(x, mirrorY)); _tiles[7 - x, mirrorY] = new PieceBishop(colors[team], this, new Position(7 - x, mirrorY)); break; case 3: _tiles[x, mirrorY] = new PieceQueen(colors[team], this, new Position(x, mirrorY)); _tiles[7 - x, mirrorY] = new PieceKing(colors[team], this, new Position(7 - x, mirrorY)); break; } break; case 1: _tiles[x, mirrorY] = new PiecePawn(colors[team], this, new Position(x, mirrorY)); _tiles[7 - x, mirrorY] = new PiecePawn(colors[team], this, new Position(7 - x, mirrorY)); break; } } } } }
public Board Create() { try { int countNroSquare = 0; #region Square for (int i = 1; i < nroColumn + 1; i++) { if (countNroSquare == 0 || countNroSquare == 16 || countNroSquare == 32 || countNroSquare == 48 || countNroSquare == 64) { colorSquare = colorSquareD; } if (countNroSquare == 8 || countNroSquare == 24 || countNroSquare == 40 || countNroSquare == 56) { colorSquare = colorSquareL; } foreach (string item in Row) { Square squareiitem = new Square { Name = "square" + i + item, PositionY = i.ToString(), PositionX = item, Color = colorSquare, Empty = true }; squareList.Add(squareiitem); if (colorSquare == colorSquareD) { colorSquare = colorSquareL; } else { colorSquare = colorSquareD; } countNroSquare++; } } #endregion #region Piece #region Pawn for (int p = 1; p < ((nroColumn * 2) + 1); p++) { if (nroColumn >= p) { //create piece Pawn Black PiecePawn pawnpcolorB = new PiecePawn { Name = "pawn" + p + colorB, Color = colorB, Dead = false, Img = "♟", }; pieceList.Add(pawnpcolorB); } else { var aux = (p - nroColumn); //create piece Pawn White PiecePawn pawnauxcolorW = new PiecePawn { Name = "pawn" + aux + colorW, Color = colorW, Dead = false, Img = "♙", }; pieceList.Add(pawnauxcolorW); } } #endregion #region Tower //create piece Tower Black PieceTower tower1colorB = new PieceTower { Name = "tower1" + colorB, Color = colorB, Dead = false, Img = "♜", }; PieceTower tower2colorB = new PieceTower { Name = "tower2" + colorB, Color = colorB, Dead = false, Img = "♜", }; pieceList.Add(tower1colorB); pieceList.Add(tower2colorB); //create piece Tower White PieceTower tower1colorW = new PieceTower { Name = "tower1" + colorW, Color = colorW, Dead = false, Img = "♖", }; PieceTower tower2colorW = new PieceTower { Name = "tower2" + colorW, Color = colorW, Dead = false, Img = "♖", }; pieceList.Add(tower1colorW); pieceList.Add(tower2colorW); #endregion #region Bishop //create piece Bishop Black PieceBishop bishop1colorB = new PieceBishop { Name = "bishop1" + colorB, Color = colorB, Dead = false, Img = "♝", }; PieceBishop bishop2colorB = new PieceBishop { Name = "bishop2" + colorB, Color = colorB, Dead = false, Img = "♝", }; pieceList.Add(bishop1colorB); pieceList.Add(bishop2colorB); //create piece Bishop White PieceBishop bishop1colorW = new PieceBishop { Name = "bishop1" + colorW, Color = colorW, Dead = false, Img = "♗", }; PieceBishop bishop2colorW = new PieceBishop { Name = "bishop2" + colorW, Color = colorW, Dead = false, Img = "♗", }; pieceList.Add(bishop1colorW); pieceList.Add(bishop2colorW); #endregion Bishop #region Horse //create piece Horse Black PieceHorse horse1colorB = new PieceHorse { Name = "horse1" + colorB, Color = colorB, Dead = false, Img = "♞", }; PieceHorse horse2colorB = new PieceHorse { Name = "horse2" + colorB, Color = colorB, Dead = false, Img = "♞", }; pieceList.Add(horse1colorB); pieceList.Add(horse2colorB); //create piece Horse White PieceHorse horse1colorW = new PieceHorse { Name = "horse1" + colorW, Color = colorW, Dead = false, Img = "♘", }; PieceHorse horse2colorW = new PieceHorse { Name = "horse2" + colorW, Color = colorW, Dead = false, Img = "♘", }; pieceList.Add(horse1colorW); pieceList.Add(horse2colorW); #endregion #region Queen //create piece queen Black PieceQueen queencolorB = new PieceQueen { Name = "queen" + colorB, Color = colorB, Dead = false, Img = "♛", }; pieceList.Add(queencolorB); //create piece queen White PieceKing queencolorW = new PieceKing { Name = "queen" + colorW, Color = colorW, Dead = false, Img = "♕", }; pieceList.Add(queencolorW); #endregion #region King //create piece king Black PieceKing kingcolorB = new PieceKing { Name = "king" + colorB, Color = colorB, Dead = false, Img = "♚", }; pieceList.Add(kingcolorB); //create piece king White PieceKing kingcolorW = new PieceKing { Name = "king" + colorW, Color = colorW, Dead = false, Img = "♔", }; pieceList.Add(kingcolorW); #endregion #endregion newBoard.Squares = squareList; newBoard.Pieces = pieceList; newBoard = RandomPieces(newBoard); return(newBoard); } catch (Exception ex) { return(null); } }