В среде программирования Кумир 4.2, в поле Робота есть вертикальная стена, размеры которой неизвестны. Задача Робота

В среде программирования Кумир 4.2, в поле Робота есть вертикальная стена, размеры которой неизвестны. Задача Робота состоит в том, чтобы начиная с верхнего левого угла поля, дойти до этой стены и закрасить все клетки вокруг нее.
В среде программирования Кумир 4.3, в поле Робота находятся две горизонтальные стены, смещенные друг относительно друга. Размеры этих стен также неизвестны. Задача Робота состоит в том, чтобы из любой произвольной клетки над верхней стеной, но обязательно напротив нее, дойти до этих стен и закрасить все клетки между ними.
Никита

Никита

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

1. Пока Робот не достигнет стены, повторять следующие шаги:
а) Проверить, есть ли клетки слева, справа, сверху и снизу от Робота.
б) Если есть свободные клетки слева, справа, сверху или снизу, то Роботу нужно сделать шаг в одну из этих сторон.
в) Если свободных клеток рядом с Роботом нет, значит Робот достиг стены, и алгоритм завершается.

2. После того как Робот достиг стены, закрашиваем все клетки вокруг нее:
а) Проверяем, есть ли клетка слева от Робота. Если есть, то закрашиваем ее.
б) Проверяем, есть ли клетка справа от Робота. Если есть, то закрашиваем ее.
в) Проверяем, есть ли клетка сверху от Робота. Если есть, то закрашиваем ее.
г) Проверяем, есть ли клетка снизу от Робота. Если есть, то закрашиваем ее.

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

1. Робот должен выбрать произвольную клетку над верхней стеной, но обязательно напротив нее, и находиться в этой клетке.

2. Начиная с текущей позиции, Роботу нужно двигаться вниз до тех пор, пока не достигнет верхней стены.

3. После достижения верхней стены, Робот должен повернуться вправо и продолжать двигаться вправо до тех пор, пока не достигнет второй (нижней) стены.

4. При достижении второй стены, Роботу нужно повернуться вниз и двигаться вниз до тех пор, пока не достигнет нижней границы поля.

5. После достижения нижней границы поля, Роботу нужно повернуться влево и двигаться влево до тех пор, пока не достигнет первой (верхней) стены.

6. Когда Робот снова достигнет первой стены, он должен закрашивать все клетки между верхней и нижней стенами.

Эти алгоритмы позволят Роботу закрасить требуемые клетки вокруг стены и между стенами соответственно.
Знаешь ответ?
Задать вопрос
Привет!
hello