private void HandleFirstClickOnPiece(MouseEventArgs e, int x, int y) { draw(GetFileName("blackout"), x, y, boardPictureBox.CreateGraphics()); a = board[y, x]; b = e.X / height; c = e.Y / width; Piece?piece = board[y, x]; switch (piece)//определение фигуры { case Piece.WhitePawn: case Piece.BlackPawn: GetPossibleMovesForPawn(x, y, Board.GetPieceColor(piece.Value)); break; case Piece.WhiteRook: case Piece.BlackRook: GetPossibleMovesForRook(x, y, Board.GetPieceColor(piece.Value)); break; case Piece.WhiteKnight: case Piece.BlackKnight: GetPossibleMovesForKnight(x, y, Board.GetPieceColor(piece.Value)); break; case Piece.WhiteBishop: case Piece.BlackBishop: GetPossibleMovesForBishop(x, y, Board.GetPieceColor(piece.Value)); break; case Piece.WhiteQueen: case Piece.BlackQueen: GetPossibleMovesForQueen(x, y, Board.GetPieceColor(piece.Value)); break; case Piece.WhiteKing: case Piece.BlackKing: GetPossibleMovesForKing(x, y, Board.GetPieceColor(piece.Value)); break; } }
private void boardPictureBox_MouseDown(object sender, MouseEventArgs e) { int x = e.X / height; int y = e.Y / width; if (click)//первое нажатие(выбор фигуры) { PieceColor?color = board.GetPieceColor(y, x); if ((color == PieceColor.White && board.IsMoveOfWhite) || (color == PieceColor.Black && board.IsMoveOfBlack)) { HandleFirstClickOnPiece(e, x, y); click = false; } } else//второе нажатие(выбор места) { HandleSecondClickOnPiece(x, y); } }