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

IsLegalMove() public abstract method

public abstract IsLegalMove ( Square board, Move move, IEnumerable pastMoves = null ) : bool
board Square
move Move
pastMoves IEnumerable
return bool
        public abstract bool IsLegalMove(Square[][] board, Move move, IEnumerable<Move> pastMoves = null);

Usage Example

Example #1
0
        private void ValidateIsLegalMove(Move move, ChessPiece piece)
        {
            var teamName = Enum.GetName(typeof(Team), piece.Team);
            var pieceName = Enum.GetName(typeof(PieceType), piece.PieceType);

            var orderedMoves = Game.Moves.OrderBy(i => i.MoveId);

            if (!piece.IsLegalMove(_board.Squares, move, orderedMoves))
                throw new Exception("This is not a legal move for a " + teamName + " " + pieceName + ".");
        }