Chess.Data.Entities.ChessPiece.Move C# (CSharp) Method

Move() public method

public Move ( Square board, Move move ) : void
board Square
move Move
return void
        public void Move(Square[][] board, Move move)
        {
            DestroyOccupant(board, move);

            board[move.EndRow][move.EndColumn].ChessPiece = this;
            board[move.StartRow][move.StartColumn].ChessPiece = null;

            CurrentColumn = move.EndColumn;
            CurrentRow = move.EndRow;
            MoveCount++;
        }

Usage Example

Example #1
0
        private void PerformMove(Move move, ChessPiece defender, ChessPiece piece)
        {
            if (FitsEnPassantCriteria(move, defender, piece))
            {
                PerformEnPassant(move);
            }

            if (FitsCastleCriteria(move, piece))
            {
                MoveRookForCastle(move);
            }

            if (defender != null)
            {
                if (piece.Team == Team.Dark)
                    Game.DarkScore += defender.ScoreValue;
                if (piece.Team == Team.Light)
                    Game.LightScore += defender.ScoreValue;
            }

            piece.Move(_board.Squares, move);

            IncrementMoveData(move);
        }