/// <summary> /// ChessBoardStatic /// </summary> /// <param name="aChessBoardBox"></param> /// <returns></returns> public ChessBoard(ChessBoardImageGenerator aChessBoardImageGenerator, PictureBox aPictureBox) { chessBoardImageGenerator = aChessBoardImageGenerator; if (aPictureBox.Handle == null) { throw new Exception("Bad PictureBox"); } chessBoardBox = aPictureBox; squareList = new ArrayList(); whitePieceList = new ArrayList(); blackPieceList = new ArrayList(); chessPieceFactory = new ChessPieceFactory(); squareFactory = new ChessSquareFactory(); squareLocator = new ChessSquareLocator(); chessBoardInitializer = new ChessBoardInitializer(this, squareList, whitePieceList, blackPieceList, squareFactory, chessPieceFactory, squareLocator); chessBoardInitializer.Initialize(); chessBoardBox.Paint += new PaintEventHandler(paint); chessLocationCalculatorFactory = new ChessLocationCalculatorFactory(this); }
/// <summary> /// ChessBoardInitializer Constructor /// </summary> /// <param name="aChessBoard"></param> /// <param name="aChessFENString"></param> /// <param name="aSquareList"></param> /// <param name="aWhitePieceList"></param> /// <param name="aBlackPieceList"></param> /// <param name="aSquareFactory"></param> /// <param name="aPieceFactory"></param> /// <param name="aSquareLocator"></param> public ChessBoardInitializer(ChessBoard aChessBoard, ArrayList aSquareList, ArrayList aWhitePieceList, ArrayList aBlackPieceList, ChessSquareFactory aSquareFactory, ChessPieceFactory aPieceFactory, ChessSquareLocator aSquareLocator) { chessBoard = aChessBoard; squareList = aSquareList; whitePieceList = aWhitePieceList; blackPieceList = aBlackPieceList; squareFactory = aSquareFactory; pieceFactory = aPieceFactory; squareLocator = aSquareLocator; }
//, bool aIsHighlight, bool aIsLastMove) /// <summary> /// Draw Square Method /// </summary> /// <param name="g"></param> /// <param name="aChessSquareFactory"></param> /// <param name="aIsHighlight"></param> /// <param name="aIsLastMove"></param> internal void Draw(Graphics g, ChessSquareFactory aChessSquareFactory) { StringBuilder title = new StringBuilder(); ChessSquareRectangle chessSquareRectangle = aChessSquareFactory.GetSquareRectangle(squareColor); if (chessPiece == null) title.Append(chessLocation.ToString()); else title.Append(chessLocation.ToString() + '/' + chessPiece.GetPieceType().ToString()); chessSquareRectangle.Draw(g, startLocation.X, startLocation.Y, title.ToString()); }