Вопрос:

Задача № 5 Робот находится где-то в коридоре высотой в 1 клетку. Задача робота – оказаться на 1 клетку левее крайней левой закрашенной клетки. Если закрашенных клеток нет или левая клетка прямоугольника закрашена, то в правой клетке коридора. move_left Сделать шаг влево move_right Сделать шаг вправо move_up Сделать шаг вверх move_down Сделать шаг вниз fill_cell Закрасить клетку free_from_up Проверить, свободно ли сверху free_from_down Проверить, свободно ли снизу free_from_left Проверить, свободно ли слева free_from_right Проверить, свободно ли справа wall_from_up Проверить, есть ли стена сверху wall_from_down Проверить, есть ли стена снизу wall_from_left Проверить, есть ли стена слева wall_from_right Проверить, есть ли

Ответ:

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

Пример программы:

while free_from_left:
    move_left
if fill_cell or not free_from_left:
    move_right

В данной программе сначала робот двигается влево, пока слева свободно. Затем, если текущая клетка закрашена или слева нет свободной клетки, робот двигается вправо.

Ответ: Программа для робота, выполняющего поставленную задачу, приведена выше.

Смотреть решения всех заданий с листа
Подать жалобу Правообладателю