------------------------------------------------------------------------------
-- Blocks a slider piece
blockSlider :: Board -> Square -> [ Move ]
blockSlider b checker = sortBy moveValHeuristics $ concat $ do
  let endSquares = piecesOf b (b^.next) King .|. fromSquare checker
  t <- toList $ lineBB (myKingPos b) checker .&. complement endSquares
  return $ moveTo b t


------------------------------------------------------------------------------
blockSlider :: Board -> Square -> [ Move ]
blockSlider b checker = sortBy moveValHeuristics $ concat $ do
  let endSquares = piecesOf b (b^.next) King .|. fromSquare checker
  t <- toList $ lineBB (myKingPos b) checker .&. complement endSquares
  return $ moveTo b t


------------------------------------------------------------------------------
blockSlider b checker = sortBy moveValHeuristics $ concat $ do
  let endSquares = piecesOf b (b^.next) King .|. fromSquare checker
  t <- toList $ lineBB (myKingPos b) checker .&. complement endSquares
  return $ moveTo b t


------------------------------------------------------------------------------