Наткнулся на одну любопытную игрушку в стиме,
LogicBots
Это конструктор-песочница, смысл которой - создавать и с помощью простейших логических элементов "программировать" движущихся роботов для выполнения заданных функций.
Вообще подобных игрушек, требующих логики программирования, в Стиме хватает, спрос на такое есть. Эту же отличает то, что тут используется полноценный 3D-движок с физикой. Соответственно, найденное решение должно быть не просто логически точным - оно должно быть НАДЕЖНЫМ, работающим в пограничных условиях, учитывающим девиации: микропробуксовки колёс, неровности рельефа и всё такое прочее.
Создание бота состоит из двух частей - непосредственно создание модели, с выбранным корпусом, прикрепление в нужным местах колёс и других активных частей, датчиков, солнечных батарей и всего, что понадобится - и создание логической схемы, из наборов элементов от простейших "И" "ИЛИ" "НЕ" до их продвинутых версий, таймеров, счетчиков, математических операций над величинами и т.д.
Задания варьируются, усложняются. Я добрался до третьей группы заданий и перечислю, например, только лишь типы датчиков, которые мне понадобились для выполнения задач: датчик определения тёмного/светлого цвета, лазерный дальномер, цветной датчик, датчик освещенности, широкоугольный датчик препятствий, компас, датчик радиоворот, GPS-приёмник...
Основной недостаток игры, как я считаю - крутая т.н. "кривая вхождения". Вернее это было бы назвать стеной вхождения. Глухой стеной вхождения. В простеньком туториале нам объясняют, как создать элементарнейшего бота, который с помощью двух датчиков может худо-бедно двигаться вдоль плавной черной линии. А потом сразу бьют в морду и бросают в какой-то адЪ, где хочется рвать волосы во всех местах от условий задач и ограничений. Ведь даже простейшее "программерское" действие тут не выглядит простейшим. Например, приказать роботу: если впереди стена, поверни налево. "If ... then turn left". Ага-ага. Прежде всего, робот не знает, что такое "налево". У него колеса, прикрепленные к одному из двум моторам (обычное левые - к одному, правые - к другому). Каждый из моторов может вращаться в прямом или обратном направлении или останавливаться, вот с такими возможностями и программируй-командуй. Бери блоки проверки датчиков на условия, набирай логические элементы, веди командные линии к моторам и надейся, что не выйдешь за бюджет. Ну и, конечно, если требуется робот, который не только способен, стоя у стены, вечно крутиться влево, ставь кучи развилок "И", "ИЛИ", другие датчики, другие проверки...
Вот, например, один из уровней второй группы - требуется создать робота, который может пройти лабиринт, проехать по линии с прямыми углами и затем по возвышенной платформе, не упав с неё.
[изображение]
Вот так выглядит мой робот, с детекторами препятствий, ч/б-датчиками, лазерными дальномерами.
[изображение]
А вот так выглядит его логическая схема.
[изображение]
В итоге на одном из уровней третьей группы, где требуется создать робота, успешно передвигающегося по пересеченной местности между GPS-координатами в заданном порядке, избегая камней, деревьев и канав, я просто завис и повесился.
Хватает и других недостатков у неё - прежде всего в интерфейсе. Создание логической части могло бы быть куда изящней, конструирование корпуса - куда точнее, с соответствующими инструментами, потому что многое и там и там делается через задницу. К сожалению автор, который с небольшим коллективом работал над игрой, больше не патчит её и переключился на другие проекты.
Достоинство же у неё только одно - других подобных нет. Помню какую-то давнюю игрушку, где надо было строить роботов, сражающихся на арене, но управлял ты ими там напрямую. А в других программерско-логических играх обычно имеешь дело со сферическими конями в вакууме. Так что попробовать рекомендую, других альтернатив нет.