Ну, можешь в виде графа поиск объекта сделать... Гамильтонов цикл будет по-сути, если всю матрицу(представленную в виде графа) перебирать пока не найдет, или ещё оптимальнее будет генерить карту в виде матрицы и определить каждую клетку на твоём поле в виде вершины графа и проходиться по нему BFS'ом, поиск в глубину не сработает, он вероятно, будет обходить всю твою карту. Ещё можно определить направление до объекта и округлить его до ближайшего возможного перемещения, но эт уже жадный алгоритм который в более общих случаях не работает