Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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);
            }
        }