Use block variables instead of method arguments
Identify no intermediate positions for the knight

The knight can jump over other pieces and hences doesn't need to check
if any pieces block its movement.
Identify intermediate positions for the pawn