Студентам и юным Подаванам осваивающим основы "кодинга", "программинга","хаккинга" и "тралли-валинга" из покон веков задавали одни и те-же логические задачки для лучшей усвояемости знаний о принципах Робототехники и линейного Программирования.
Решать, и, позднее, ставить перед студентами подобные задачки довелось и мне, но интерес к оригинальности решений, зачастую ошибочных не пропал. Так что сегодня мы повторим муки творчества в поиске наипростейшего решения задачи с роботом и лабиринтом.
ПРО САПОГ ВЫ УЗНАЕТЕ ЧУТЬ ПОЗДНЕЕ, А ПОКА ...
ЗАДАЧА РОБОТ В ЛАБИРИНТЕ
Не станем упираться в массу вариантов решений и алгоритмов на всевозможных языках программирования которым сегодня пришел "кирдык"... Да! Сегодня для программера/кодера знание языков программирования вовсе не необходимость!
Уже появилась возможность создания функциональных проектов без навыков программирования или умения рисовать графику.
Зерокодинг или No-code это направлении, освоив которое вы сами сможете разрабатывать приложения под iOS и Android вообще не изучая никакие языки программирования. Программист создает приложение, которое позволяет писать код без знания языков программирования, подключив ChatGTP к фреймворку React. Таким образом он буквально собирает приложение простыми командами.
Программирование сегодня – это универсальная компетенция, но никто не отменял умение Мыслить и Строить алгоритмы как в голове, так и на бумаге.
Так, что оставим Ностальгирующим программёрам их строки кода
А сами полюбуемся типичной БЛОК-СХЕМОЙ прохождения лабиринта
Что-бы там ни говорили, а блок-схема дает ясное представление о том как сработает или не сработает программа писанная хоть на Латыни, хоть на Сурджике или по Этрусски...
open-DIR – открыть дверь между текущей клеткой и соседней клеткой по направлению DIR. Если двери в этом направлении нет, или она уже открыта, или у робота нет ключа, ничего не происходит.
take – поднять ключ, находящийся в текущей клетке. Если в текущей клетке ключа не было или робот его уже поднял, то ничего не происходит. Робот может носить с собой произвольное количество ключей.
Для того чтобы вам не было грустно разбираться с кодами и блоками, я просто упрощу простое упрощение =)
ДВИГАЯСЬ ПРЯМО, РОБОТ УПЕРСЯ В СТЕНУ ! КУДА ПОВЕРНЕМ ?Даже самый простейший робот должен решать проблему выбора!
Вот тут и ломаются большинство простых программ и решений!
Да, конечно, РОБОТ С ПАМЯТЬЮ, ЗАПОМИНАЮЩИЙ ВСЕ СВОИ ХОДЫ это хорошо для ограниченного пространства, но в итоге он с каждым шагом становится медлительнее, перебирая массив из накопленных знаний.
Ди и применять алгоритм с памятью не очень целесообразно для столь простых задачек.
ПОМНИТЕ РОБОТА БЕГУЩЕГО ПО БЕЛОМУ ФОНУ И ОТВОРАЧИВАЮЩЕГО ОТ ЧЕРНЫХ ЛИНИЙ ИЛИ СТЕНОК?
КУДА ПОВЕРНЕТ ЭТОТ РОБОТ ОБНАРУЖИВ ПРЕПЯТСТВИЕ ?
Ну не станете-же вы пихать в него микроконтроллер с программой спутниковой навигации и картами местности !?!?
Вам , как и Роботу НУЖНО СДЕЛАТЬ ВЫБОР который и ограничит вас в действиях приведет в ту самую ловушку, которую, не только я, называют "САПОГ".
РОБОТ, ПОВОРАЧИВАЮЩИЙ ТОЛЬКО В ОДНУ СТОРОНУ, НИКОГДА НЕ ВЫБЕРЕТСЯ ИЗ ЛАБИРИНТА ПОПАВ ВОТ В ТАКОЙ УЧАСТОК
Почитав примеры кодинга и посмотрев блок-схемы решения задачек с лабиринтами, я был очарован той безграничной "гениальностью" с которой самоуважающие себя Авторы пишут о том, что, даже в принципе не может работать в реальности.
Вот, к примеру Автор канала рассказывающий нам про ЭЛЕКТРОННЫЕ СХЕМЫ, убеждает нас в том, что РОБОТ ОГИБАЮЩИЙ ПРЕПЯТСТВИЯ может быть собран всего с одним "глазом" - фотодатчиком.
Друзья! Вы не подскажите мне - Старому Хрычу - Как может устройство, жужжащее моторчиком, при освещении солнечной панельки ОГИБАТЬ какие-либо препятствия ? Мне кажется нас тут очень сильно наё... обманывают наглым образом.
По сравнению с этим "Гениальным Шыдевром", моя дурацкая самоделка - РОБОТ БЕГУЩИЙ В СТОРОНУ СОЛНЦА это просто невообразимое творение вселенского разума =)
И , при этом в этой игрушке нет ни одного транзистора и, упаси вас Ампер, микроконтроллера или микросхемы.
И, не смотря на простоту, эта схема готова к практическому применению в домашнем хозяйстве - она может активно следить за солнышком, поворачивая солнечные панели на максимальной эффективности.
Ну, а для тех кому уж очень сильно нравятся транзисторы, могу предложить и вот такую схему поворотного "солнечного следилы".