- 2 3 5
Задача 2
В комнате 2х2 есть уютная ниша (как на рисунке). Напиши программу,
которая Р.О.М.А. добраться до этой клетки и спрятаться там.
1
су
3
ove_left(0) Сделать шаг влево
move_right() Сделать шаг вправо
move_up() Сделать шаг вверх
move_down() Сделать шаг вниз
wall_from_upО) Проверить, есть ли стена сверху
wall_from_down0) Проверить, есть ли стена снизу
wall_from_left() Проверить, есть ли стена слева
wall_from_right) Проверить, есть ли стена справа
free_from_up) Проверить, свободно ли сверху
free_from_down) Проверить, свободно ли снизу
free_from_left() Проверить, свободно ли слева
free_from_right() Проверить, свободно ли справа
fill_celt() Закрасить клетку
cell_is_filled) Проверить, закрашена ли клетка
cell_is_clean() Проверить, чиста ли клетка
4
5
у
1x
ответить
?
W
АВ
C
17:02
16.03.2021
Для начала, нам дана информация о комнате размером 2х2 и ниша, в которой нам нужно спрятаться. Также, даны инструкции программы, которые мы можем использовать для перемещения по комнате и проверок наличия стен и состояния клеток.
Итак, чтобы решить эту задачу, давайте составим план действий:
1. Изначально Р.О.М.А находится в определенной клетке комнаты (координаты не указаны), и нам нужно добраться до ниши размером 2х2.
2. В данной инструкции у нас есть несколько функций перемещения:
- move_left(): делает шаг влево.
- move_right(): делает шаг вправо.
- move_up(): делает шаг вверх.
- move_down(): делает шаг вниз.
3. Также, у нас есть функции проверки стен и свободных клеток:
- wall_from_up(): проверяет наличие стены сверху.
- wall_from_down(): проверяет наличие стены снизу.
- wall_from_left(): проверяет наличие стены слева.
- wall_from_right(): проверяет наличие стены справа.
- free_from_up(): проверяет, свободна ли клетка сверху.
- free_from_down(): проверяет, свободна ли клетка снизу.
- free_from_left(): проверяет, свободна ли клетка слева.
- free_from_right(): проверяет, свободна ли клетка справа.
4. И, наконец, у нас есть функции для закрашивания и проверки состояния клеток:
- fill_celt(): закрашивает клетку.
- cell_is_filled(): проверяет, закрашена ли клетка.
- cell_is_clean(): проверяет, чиста ли клетка.
Теперь, с учетом данных инструкций, мы можем составить план действий для Р.О.М.А:
1. Проверяем клетку сверху используя функцию wall_from_up(). Если клетка свободна, то мы делаем шаг вверх, используя функцию move_up().
2. Если клетка сверху занята или есть стена, мы проверяем клетку справа с помощью функции wall_from_right().
- Если клетка справа свободна, делаем шаг вправо, используя функцию move_right().
- Если клетка справа занята или есть стена, мы проверяем клетку снизу с помощью функции wall_from_down().
- Если клетка снизу свободна, делаем шаг вниз, используя функцию move_down().
- Если клетка снизу занята или есть стена, мы проверяем клетку слева с помощью функции wall_from_left().
- Если клетка слева свободна, делаем шаг влево, используя функцию move_left().
Повторяем все эти шаги, пока не достигнем ниши размером 2х2, где Р.О.М.А спрячеться.
Надеюсь, этот детальный план действий поможет вам решить данную задачу.