Вопрос:

Задача Блокли Робот ? Алгоритм с циклом Отправляемся в путешествие! Но не забываем собирать по дороге запчасти для экстренного ремонта. Составь программу, по которой замок соберёт все шестерёнки и остановится на финише. Шестерёнка собирается командой fill_cell. move_left Сделать шаг влево move_right Сделать шаг вправо move_up Сделать шаг вверх move_down Сделать шаг вниз fill_cell Закрасить клетку free_from_up Проверить, свободно ли сверху free_from_downer Принтерить, свободно ли снизу </> Решать задачу

Смотреть решения всех заданий с листа

Ответ:

Решение:

  • move_left — команда для движения влево.
  • move_right — команда для движения вправо.
  • move_up — команда для движения вверх.
  • move_down — команда для движения вниз.
  • fill_cell — команда для закрашивания текущей клетки.
  • free_from_up — команда для проверки, свободна ли клетка сверху.
  • free_from_down — команда для проверки, свободна ли клетка снизу.

Поскольку задача заключается в том, чтобы собрать все шестерёнки и остановиться, нам потребуется цикл, который будет продолжаться до тех пор, пока все шестерёнки не будут собраны. Внутри цикла нам нужно двигаться и закрашивать клетки. Также необходимо проверить, чтобы не выйти за пределы поля и не попасть в препятствие.

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

while not all_gears_collected:
  if free_from_up:
    move_up
    fill_cell
  elif free_from_right:
    move_right
    fill_cell
  elif free_from_down:
    move_down
    fill_cell
  elif free_from_left:
    move_left
    fill_cell
  else:
    // Если нет свободных клеток, возможно, нужно вернуться или завершить программу

Примечание: Точный код зависит от конкретной реализации (например, как определяется 'all_gears_collected' и наличие других команд, таких как 'free_from_right').

ГДЗ по фото 📸
Подать жалобу Правообладателю