BoardForm(Board initBoard) { InitializeComponent(); board = initBoard; lastBoardArr = (char [, ])board.GetBoardTab().Clone(); char[,] boardTab = board.GetBoardTab(); player = board.GetHumanPlayer(); movesToDisp = new List <string>(); boardSize = boardDisp.Size; nbBoxEdge = (int)Math.Sqrt(boardTab.Length); boxSize = boardSize.Width / nbBoxEdge; piecesImage = new Dictionary <PieceEnum, Bitmap>(); lightColor = Color.FromArgb(238, 238, 210); darkColor = Color.FromArgb(118, 150, 86); Bitmap sprite = new Bitmap("../../pieces_sprite.png"); int pieceSize = sprite.Height / 2; int cropx = 0; int cropy = 0; foreach (PieceEnum piece in Enum.GetValues(typeof(PieceEnum))) { switch (piece) { case PieceEnum.WhiteKing: cropx = 0 * pieceSize; cropy = 0 * pieceSize; break; case PieceEnum.WhiteQueen: cropx = 1 * pieceSize; cropy = 0 * pieceSize; break; case PieceEnum.WhiteRook: cropx = 4 * pieceSize; cropy = 0 * pieceSize; break; case PieceEnum.WhiteKnight: cropx = 3 * pieceSize; cropy = 0 * pieceSize; break; case PieceEnum.WhiteBishop: cropx = 2 * pieceSize; cropy = 0 * pieceSize; break; case PieceEnum.WhitePawn: cropx = 5 * pieceSize; cropy = 0 * pieceSize; break; case PieceEnum.BlackKing: cropx = 0 * pieceSize; cropy = 1 * pieceSize; break; case PieceEnum.BlackQueen: cropx = 1 * pieceSize; cropy = 1 * pieceSize; break; case PieceEnum.BlackRook: cropx = 4 * pieceSize; cropy = 1 * pieceSize; break; case PieceEnum.BlackKnight: cropx = 3 * pieceSize; cropy = 1 * pieceSize; break; case PieceEnum.BlackBishop: cropx = 2 * pieceSize; cropy = 1 * pieceSize; break; case PieceEnum.BlackPawn: cropx = 5 * pieceSize; cropy = 1 * pieceSize; break; } piecesImage.Add(piece, ResizeImage(CropImage(sprite, cropx, cropy, pieceSize, pieceSize), boxSize, boxSize)); } }