Сегодня мы планируем экспедицию на Марс. Там находится наш робот-исследователь, ресурс действия которого подошёл к финалу, и необходима его замена на нового робота. Для выполнения этой операции на Марсе есть площадка с заранее разработанными маршрутами движения, ведущими вдоль многочисленных кратеров и холмов, преодолеть которые робот не в состоянии. На данной площадке роботам требуется поменяться местами: новый робот должен добраться до исследовательской базы, чтобы продолжить миссию, а его предшественник должен вернуться к космолету для сдачи полученных в ходе выполнения задания образцов.
Необходимо понимать, что Марс далеко и на площадке, предусмотренной для замены роботов, могут появиться препятствия, например, в виде упавших метеоритов.
Прежде чем приступить к реальной замене роботов, отработаем их поведение в моделируемых условиях.
Для решения поставленной задачи произведём имитацию, для этого будем использовать двух одинаковых роботов: робота, исчерпавшего свой ресурс и робота, прилетевшего с Земли на Марс для замены первого.
Поле представляет собой прямоугольную область с нанесёнными на неё линиями разметки. Для имитации предполагаемых препятствий будут использоваться кегли, описание которых дается в технических условиях.
На поле присутствуют две зоны старта/финиша (красные прямоугольники) робота и 5 возможных положений препятствий.
В каждой из зон старта/финиша располагается робот. На поле нанесена разметка чёрными полосами.
Для инициации движения роботов с целью исполнения поставленной задачи экспериментатор производит нажатие кнопок (датчика касания, подключенного к порту 3) сначала у робота, расположенного в зоне 1, затем у робота, расположенного в зоне 2.
Требуется написать ОДНУ программу, используемую для обоих роботов, которые в автоматическом режиме должны поменяться своим местоположением, осуществляя движение по линии и не врезаясь в посторонние объекты (кегли).
Схема исходного расположения роботов:
Фото исходного расположения робота с возможным вариантом расстановки кеглей (модель препятствия).
Роботы устанавливаются на свои начальные позиции, и осуществляется запуск программы, загруженной в их память. Кнопки на роботах нажимаются поочерёдно с интервалом не более 3 секунд. Сначала нажимается кнопка робота, находящегося в зоне 1, затем в зоне 2. Вместе со вторым нажатием секундомер начинает свой отсчёт, и роботы приступают к движению. До второго нажатия перемещение роботов запрещено. Разрешается выполнить подготовительные процедуры, не связанные с перемещением роботов.
Роботы имеют условно ограниченную зону действия размером 200×96 см (отмечена ограничивающими линиями). Выход робота тремя колёсами (шарообразную опору считаем за колесо) за пределы зоны не допускается.
Все кегли расположены на своих исходных местах. Роботы располагаются в целевых зонах старта/финиша, поменявшись местами. Ориентация робота не важна.
В любом случае, решение принимается в пользу роботов.
При необходимости решение может быть помещено в архив 7zip.
(Представленный фрагмент носит ознакомительный характер для понимания сути задачи и не является указанием к её решению)