Для решения данной задачи необходимо написать алгоритм для робота, который будет закрашивать все клетки, расположенные выше и ниже стены, независимо от её длины. Исходное положение робота указано на схеме.
Алгоритм:
// Исходное положение робота: (x, y)
// Функция для движения вверх и закрашивания клеток
function ЗакраситьСтенуВверх(x, y) {
while (НеПрепятствие(x, y - 1)) { // Пока нет препятствия сверху
y = y - 1; // Двигаемся вверх
ЗакраситьКлетку(x, y); // Закрашиваем клетку
}
}
// Функция для движения вниз и закрашивания клеток
function ЗакраситьСтенуВниз(x, y) {
while (НеПрепятствие(x, y + 1)) { // Пока нет препятствия снизу
y = y + 1; // Двигаемся вниз
ЗакраситьКлетку(x, y); // Закрашиваем клетку
}
}
// Основной алгоритм
function ОсновнойАлгоритм(x, y) {
ЗакраситьКлетку(x, y); // Закрашиваем исходную клетку
ЗакраситьСтенуВверх(x, y);
ЗакраситьСтенуВниз(x, y);
}
// Вызов основного алгоритма с начальными координатами
ОсновнойАлгоритм(x, y);
Этот алгоритм предполагает, что у робота есть датчики для определения препятствий (конца стены или других объектов) и функции для перемещения и закрашивания клеток.
Ответ: алгоритм выше.