Краткий ответ
Программу можно записать последовательностью команд (движение по клеткам): ← ← ← ← ↑ ↑ ↑ → ↑ → ↓ → ↑ → → → ↑ ← ← ↓ ← ↑
Здесь:
- ← — влево
- ↑ — вверх
- → — вправо
- ↓ — вниз
Как рассуждать (принцип решения)
Определяем координаты. Мысленно пронумеруем строки сверху вниз и столбцы слева направо.
- Робот стоит на старте в 9-й строке, 7-м столбце.
- Розовые клетки находятся в точках: (9, 3), (6, 5), (5, 8), (4, 9).
- Фиолетовый финиш — в (4, 6).
Учитываем стены. Синие линии — это препятствия. Если между клетками есть синяя линия, напрямую проехать нельзя. Например, стена вокруг финиша есть слева, сверху и справа, поэтому заехать в него можно только снизу.
Строим маршрут по шагам:
- Сначала едем влево по 9-й строке, собирая первую розовую клетку (9,3).
- Затем поднимаемся вверх до 6-й строки. Чтобы обойти стену слева от второй розовой клетки, идём вправо, вверх, вправо, вниз — попадаем в (6,5).
- От второй клетки едем вправо и вверх на 5-ю строку. Двигаемся вправо, собирая третью розовую клетку (5,8).
- Чтобы достать четвёртую (4,9), едем вправо до (5,9) и поднимаемся вверх.
- К финишу возвращаемся так: идём влево по 4-й строке до стены, спускаемся вниз, берём влево и заезжаем вверх в фиолетовую клетку.
Проверка Все четыре розовые клетки посещены, путь не пересекает синие стены, робот приходит в финиш снизу. Программа составлена верно.
