Алгоритм обхода

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2015

Имеется каретка, движущаяся по осям X и Y, и поле, разделенное на 24 квадрата вот так: 1 2 3 4 5 6 первый ряд, 7 8 9 10 11 12 второй ряд и т.д. Подскажите алгоритм оптимального перемещения каретки от квадрата 1 до квадрата 24.

Ответы

▲ 2

Вот этот алгоритм я и не могу закодить.

Примерно так, если я правильно понял проблему...

Для случая 1..n, например, CurPos=1 (текущий квадрат), ряды снизу вверх:

  1. Сначала идём всегда вправо, пока не упёрлись или не достигли n.
  2. Потом поднимаемся вверх на 1 и меняем направление.
  3. Ставим флаг, нужно ли нам будет продолжать движение по y в будущем, т.е. если СuPos>=n, то это последняя строка).
  4. Если CurPos<=n -> "сняли".
  5. Иначе просто продолжаем движение влево, пока не упёрлись.
  6. Повторяем с шага 2.