Шешімі: Закрашивание стен прямоугольника
На бесконечном поле имеются четыре стены, расположенные в форме прямоугольника. Длины вертикальных и горизонтальных стен неизвестны. Робот находится в клетке, расположенной в левом верхнем углу прямоугольника. Напишите алгоритм, закрашивающий все клетки, расположенные с внутренней стороны правой и нижней стен. Робот должен закрасить только клетки, удовлетворяющие этому условию. Конечное расположение Робота может быть произвольным. Алгоритм должен работать для произвольного размера и любого допустимого расположения стен, не приводить к разрушению Робота и завершаться.


Шешім по шагам
4 қадамРобот находится в левом верхнем углу внутренней области прямоугольника. Сначала перемещаем его вправо до правой стены.
В клетке непосредственно слева от правой стены закрашиваем клетку, затем двигаемся вниз и закрашиваем каждую следующую клетку до нижней стены.
Оказавшись в правом нижнем углу внутренней области, двигаемся влево. Каждую клетку над нижней стеной закрашиваем. Цикл заканчивается перед левой стеной.
Один из подходящих алгоритмов:
$$нц пока справа свободно вправо кц закрасить нц пока снизу свободно вниз закрасить кц нц пока слева свободно влево закрасить кц$$нц пока справа свободно
вправо
кц
закрасить
нц пока снизу свободно
вниз
закрасить
кц
нц пока слева свободно
влево
закрасить
кц
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Закрашивают клетку после перемещения влево, но не закрашивают исходную клетку в правом нижнем углу.
Пытаются выполнить команду движения через стену.
Закрашивают клетки с внешней стороны стен.
Не закрашивают клетку непосредственно слева от правой стены перед началом движения вниз.