Тарантул
11:20 14-11-2018 LogicBots
Наткнулся на одну любопытную игрушку в стиме, LogicBots

Это конструктор-песочница, смысл которой - создавать и с помощью простейших логических элементов "программировать" движущихся роботов для выполнения заданных функций.

Вообще подобных игрушек, требующих логики программирования, в Стиме хватает, спрос на такое есть. Эту же отличает то, что тут используется полноценный 3D-движок с физикой. Соответственно, найденное решение должно быть не просто логически точным - оно должно быть НАДЕЖНЫМ, работающим в пограничных условиях, учитывающим девиации: микропробуксовки колёс, неровности рельефа и всё такое прочее.

Создание бота состоит из двух частей - непосредственно создание модели, с выбранным корпусом, прикрепление в нужным местах колёс и других активных частей, датчиков, солнечных батарей и всего, что понадобится - и создание логической схемы, из наборов элементов от простейших "И" "ИЛИ" "НЕ" до их продвинутых версий, таймеров, счетчиков, математических операций над величинами и т.д.

Задания варьируются, усложняются. Я добрался до третьей группы заданий и перечислю, например, только лишь типы датчиков, которые мне понадобились для выполнения задач: датчик определения тёмного/светлого цвета, лазерный дальномер, цветной датчик, датчик освещенности, широкоугольный датчик препятствий, компас, датчик радиоворот, GPS-приёмник...

Основной недостаток игры, как я считаю - крутая т.н. "кривая вхождения". Вернее это было бы назвать стеной вхождения. Глухой стеной вхождения. В простеньком туториале нам объясняют, как создать элементарнейшего бота, который с помощью двух датчиков может худо-бедно двигаться вдоль плавной черной линии. А потом сразу бьют в морду и бросают в какой-то адЪ, где хочется рвать волосы во всех местах от условий задач и ограничений. Ведь даже простейшее "программерское" действие тут не выглядит простейшим. Например, приказать роботу: если впереди стена, поверни налево. "If ... then turn left". Ага-ага. Прежде всего, робот не знает, что такое "налево". У него колеса, прикрепленные к одному из двум моторам (обычное левые - к одному, правые - к другому). Каждый из моторов может вращаться в прямом или обратном направлении или останавливаться, вот с такими возможностями и программируй-командуй. Бери блоки проверки датчиков на условия, набирай логические элементы, веди командные линии к моторам и надейся, что не выйдешь за бюджет. Ну и, конечно, если требуется робот, который не только способен, стоя у стены, вечно крутиться влево, ставь кучи развилок "И", "ИЛИ", другие датчики, другие проверки...

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

[изображение]

Вот так выглядит мой робот, с детекторами препятствий, ч/б-датчиками, лазерными дальномерами.

[изображение]

А вот так выглядит его логическая схема.

[изображение]

В итоге на одном из уровней третьей группы, где требуется создать робота, успешно передвигающегося по пересеченной местности между GPS-координатами в заданном порядке, избегая камней, деревьев и канав, я просто завис и повесился.

Хватает и других недостатков у неё - прежде всего в интерфейсе. Создание логической части могло бы быть куда изящней, конструирование корпуса - куда точнее, с соответствующими инструментами, потому что многое и там и там делается через задницу. К сожалению автор, который с небольшим коллективом работал над игрой, больше не патчит её и переключился на другие проекты.

Достоинство же у неё только одно - других подобных нет. Помню какую-то давнюю игрушку, где надо было строить роботов, сражающихся на арене, но управлял ты ими там напрямую. А в других программерско-логических играх обычно имеешь дело со сферическими конями в вакууме. Так что попробовать рекомендую, других альтернатив нет.
Комментарии:
Foks
11:55 14-11-2018
Очень полезная игра для ума, но к отдыху не располагает. Это скорее что-то из области образования.
Тарантул
12:01 14-11-2018
Это чтобы мозги пощекотать, до определенного момента очень затягивает, пока каждый не встретит свой уровень, в котором разобьёт клавиатуру о монитор.
Образование тут не сильно нужно и не сильно повышается, тут никаких спецтерминов или языка программирования нет, только логика.
Foks
13:31 14-11-2018
ну, даже если нет языка, все равно принуждает к осмысливанию и созданию некого функионального алгоритма, а этот навык может потом где-нибудь пригодиться.

Оффтоп. Я тут на планету Ева погладыаю. Собираюсь покорить. Сижу, тоже думаю над вариантами, нужно учесть кучу мелочей. Остановился на варианте в 3 корабля. Теперь пытаюсь согласовать роли и функции этих кораблей. Очень интересная задача.
Light_Metal
20:35 22-11-2018
Других подобных нет?
Подброшу на вентилятор. Комментарии листать в обязательном порядке.
Тарантул
23:51 22-11-2018
Light_Metal Шенжен, Аплинк, Хакнет - это, конечно, ещё более проработанные вещи, я могу назвать ещё парочку. Но я пояснил в посте, что я подразумевал под подобностью:
Эту же отличает то, что тут используется полноценный 3D-движок с физикой. Соответственно, найденное решение должно быть не просто логически точным - оно должно быть НАДЕЖНЫМ, работающим в пограничных условиях, учитывающим девиации: микропробуксовки колёс, неровности рельефа и всё такое прочее.


Все остальные - это программирование в идеальном мире триггеров и цифр. А тут - программирование реального марсианского ровера, можно сказать) Который может увязнуть в куче говна, съехать с линии при крутом развороте, и свалиться с платформы, если колеса в эту поездку пробуксуют на миллисекунду и лазер уйдет на полмиллиметра влево. Меня заинтересовала необходимость создания именно НАДЕЖНОЙ техники. Может, и тут моя космическая боль сказывается)
Light_Metal
09:46 23-11-2018
Честно говоря, по мне так и без вот этой фишки с пробуксовкой и имитацией реальных условий там хватит того, чтобы чисто на реализации алгоритмов упороться
Ну а так да, именно использование 3D движка и выделяет LogicBots из остальных.
Тарантул
16:59 23-11-2018
Не, ну я ж не говорю, что они легче, я про то, что они другие. Вообще в LogicBots мне физика не особо добавляет сложности, она добавляет интереса, потому я её и выделил. А сложности в LogicBots добавляет идиотский корявый интерфейс)