def can_kingly_movement(move, board: ChessBoard): return ((abs(move.new.y - move.old.y) <= 1 and abs(move.new.x - move.old.x) <= 1) and board.is_dest_empty_or_enemy(move))
def can_move_diagonally(move, board: ChessBoard): return (move.is_diagonal() and board.is_path_clear(move) and board.is_dest_empty_or_enemy(move))