Чтобы решить эту задачу, давайте разберёмся, как робот должен действовать:
Исходная позиция: Робот находится в какой-то клетке и должен проверить соседние клетки слева и справа.
Алгоритм:
- Проверить, закрашена ли клетка слева.
- Проверить, закрашена ли клетка справа.
- Если обе клетки закрашены, покрасить текущую клетку.
- Остановиться в текущей клетке в любом случае.
Команды робота:
move_left: сделает шаг влево.move_right: сделает шаг вправо.cell_is_filled: проверяет, закрашена ли текущая клетка.fill_cell: закрашивает текущую клетку.
Теперь давайте напишем псевдокод, следуя этому алгоритму:
move_left # Шаг влево, чтобы проверить левую клетку
left_filled = cell_is_filled() # Проверка, закрашена ли левая клетка
move_right # Вернуться обратно к исходной клетке
move_right # Шаг вправо, чтобы проверить правую клетку
right_filled = cell_is_filled() # Проверка, закрашена ли правая клетка
move_left # Вернуться обратно к исходной клетке
# Если обе соседние клетки закрашены, закрасить текущую
if left_filled and right_filled:
fill_cell # Закрасить текущую клетку
# Робот останавливается в текущей клетке
Этот алгоритм обеспечивает выполнение задачи. Робот проверяет обе соседние клетки и закрашивает текущую только если обе они закрашены. Затем он возвращается в исходную позицию и завершает выполнение.