protected override bool IsValidRule( PieceBase piece, Position newPosition, Chessboard chessboard) { var(filesToMove, ranksToMove) = piece.GetDistanceTo(newPosition); return(filesToMove != 0 || ranksToMove != 0); }
protected override bool IsValidRule( PieceBase piece, Position newPosition, Chessboard chessboard) => chessboard .GetPiece(newPosition) .Fold(true)(otherPiece => !piece.SameColor(otherPiece));