Вопрос:

Напишите для Робота программу, закрашивающую все клетки, расположенные с внутренних сторон вертикальных стен. Робот должен закрасить только клетки, удовлетворяющие данному условию. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки (см. рисунок).

Ответ:

Решение:

Для того чтобы закрасить клетки, расположенные с внутренних сторон вертикальных стен, роботу необходимо выполнить следующие действия:

  1. Переместиться вперёд на 1 клетку.
  2. Закрасить клетку.
  3. Повторить действия 1 и 2 три раза.
  4. Повернуть налево.
  5. Переместиться вперёд на 1 клетку.
  6. Повернуть направо.
  7. Переместиться вперёд на 1 клетку.
  8. Закрасить клетку.
  9. Повторить действия 4-7 три раза.
  10. Повернуть налево.
  11. Переместиться вперёд на 1 клетку.
  12. Закрасить клетку.
  13. Повторить действия 4-7 три раза.
  14. Повернуть налево.
  15. Переместиться вперёд на 1 клетку.
  16. Закрасить клетку.
  17. Повторить действия 4-7 три раза.
  18. Повернуть налево.

Примечание: Данный алгоритм предполагает, что начальное положение робота и стен таково, как показано на рисунке. Для произвольного расположения стен и размера поля потребуется более сложный алгоритм, учитывающий условия наличия стен слева, справа, сверху и снизу.

Ответ: Алгоритм для закрашивания внутренних клеток, согласно примеру, включает последовательность шагов: вперёд, закрасить, повторить 3 раза, повернуть налево, вперёд, повернуть направо, и далее повторяющиеся блоки действий для каждой стороны внутреннего периметра.