Как закрасить указанные клетки в квадрате 2х2 с последующей остановкой справа-внизу робота

Как закрасить указанные клетки в квадрате 2х2 с последующей остановкой справа-внизу робота, используя функции move_left(), move_right(), move_up(), move_down(), wall_from_up(), wall_from_down(), wall_from_left(), wall_from_right(), free_from_up(), free_from_down(), free_from_left(), free_from_right(), fill_cell(), cell_is_filled() и cell_is_clean()?
Тема: Движение робота по клеткам

Инструкция:
Чтобы решить данную задачу, мы должны использовать функции движения и проверки состояния клеток, предоставленные в условии.
У нас есть следующие функции движения:
— `move_left()`: перемещает робота на одну клетку влево.
— `move_right()`: перемещает робота на одну клетку вправо.
— `move_up()`: перемещает робота на одну клетку вверх.
— `move_down()`: перемещает робота на одну клетку вниз.

Также у нас есть функции проверки состояния клеток:
— `wall_from_up()`: возвращает True, если клетка сверху от робота заблокирована стеной.
— `wall_from_down()`: возвращает True, если клетка снизу от робота заблокирована стеной.
— `wall_from_left()`: возвращает True, если клетка слева от робота заблокирована стеной.
— `wall_from_right()`: возвращает True, если клетка справа от робота заблокирована стеной.
— `free_from_up()`: возвращает True, если клетка сверху от робота свободна.
— `free_from_down()`: возвращает True, если клетка снизу от робота свободна.
— `free_from_left()`: возвращает True, если клетка слева от робота свободна.
— `free_from_right()`: возвращает True, если клетка справа от робота свободна.
— `fill_cell()`: закрашивает текущую клетку.
— `cell_is_filled()`: возвращает True, если текущая клетка закрашена.
— `cell_is_clean()`: возвращает True, если текущая клетка не закрашена.

Для решения задачи вам необходимо выполнить следующие шаги:
1. Начните с позиции (1, 1) в квадрате 2х2.
2. Очистите текущую клетку, вызвав `cell_is_clean()`.
3. Закрасьте текущую клетку, вызвав `fill_cell()`.
4. Проверьте, свободна ли клетка справа от робота, вызвав `free_from_right()`. Если клетка свободна, перейдите к следующему шагу, в противном случае перейдите к шагу 6.
5. Переместитесь на одну клетку вправо, вызвав `move_right()`. Вернитесь к шагу 2.
6. Проверьте, свободна ли клетка внизу от робота, вызвав `free_from_down()`. Если клетка свободна, перейдите к следующему шагу, в противном случае завершите выполнение программы.

Пример использования:

python
# Начинаем с позиции (1, 1)
move_down()  # Двигаемся вниз
move_right()  # Двигаемся вправо
fill_cell()  # Закрашиваем клетку
if free_from_right():
    move_right()  # Двигаемся вправо
    fill_cell()  # Закрашиваем клетку

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

Упражнение:
Решите задачу с использованием предложенных функций движения и проверки состояния клеток.

Твой друг не знает ответ? Расскажи!