Электрический Котёнок собирает бесплатные игры для девочек и мальчиков!

Программируем робота

Программируем робота

Мыслить алгоритмически – полезный навык не только для студентов технических ВУЗов и инженеров, но и для любого вообще мыслящего человека. Игра «Программируем робота» это головоломка, выполненная в форме обучающего детей программированию приложения, которая тренирует навык алгоритмического мышления. Эту игру найдут интересной не только дети, но и те же студенты технических специальностей, да и многие из тех, кто не имеет никакого отношения к программированию. Графика в игре минималистичная, озвучка не напрягает, и вы легко сможете сконцентрироваться на основной задаче – привести робота ко всем целям ограниченным набором команд.

Чтобы запустить игру: Поcле загрузки нажмите кнопку «Play» в правом нижнем углу, а затем выберите в главно меню пункт «New Game», для начала новой игры, или «Load game», чтобы продолжить старую.

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

Оценка по версии Kongregate: 4.2/5
Дата выхода: сентябрь 2008

Особенности игры «Программируем робота»

В данной игре действительно ограниченный набор инструкций. Это удобно, так как есть всё самое ценное. Ну а ограничение по общему количеству используемых команд за один уровень вообще взято из реальной жизни. Программирование микроконтроллеров (в том числе и для роботов) иногда связано с экономией каждого байта, ведь чем меньше объём памяти, тем меньше и стоимость кристалла, а, соответственно, и микроконтроллера. Так что в этой игре вы можете использовать 12 команд в главной программе и по 8 команд в каждой из двух доступных к использованию подпрограмм. Задача игры – составить программу, после запуска которой робот сделает всё, что вы ему приказали, и активирует все указанные клетки на уровне.

Тело программы

В нашем случае в теле программы могут быть следующие инструкции: шаг вперёд, повороты на 90 градусов по часовой и против часовой стрелки, прыжок (вверх или вниз), активация квадрата-цели и вызов первой и второй подпрограмм. Шаг вперёд не выполняется, если впереди спуск вниз или подъём наверх. Аналогично, прыжок не выполняется, если нет спуска или подъёма. В ходе составления программы, вы будете перетаскивать мышью на панель инструкций выбранные команды и затем запускать всё это. Вызов подпрограммы внутри главной программы выполнит её, а затем будет совершён автоматический возврат в главную программу.

Поясняющий пример

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

Почему пример выше работает

Мысленно (или физически) подставьте всё содержимое подпрограммы 1 в тело функции. Получится последовательность прыжок, шаг, шаг, шаг, поворот налево, шаг, шаг, шаг, поворот налево, прыжок, прыжок, прыжок, активация квадрата-цели. Обратите внимание, что она почти идентична прямой последовательности команд, и отличается только на один лишний шаг. Однако этот шаг не будет выполняться! Как описано выше, инструкция «шаг» выполняется только если впереди нет препятствия, а наш робот упрётся в маленький обрыв, и пропустит инструкцию шага.

Рекурсия

Также хотелось бы отметить такой механизм, как рекурсия. Рекурсия – наличие в определении, описании, изображении какого-либо объекта или процесса самого этого объекта или процесса, то есть ситуация, когда объект является частью самого себя, подсказывает нам Википедия. Звучит довольно непонятно, однако в данной игре рекурсию вполне можно «пощупать». Поставьте в конце вызова подпрограммы 1… вызов подпрограммы 1! В игре нет способов разорвать эту бесконечную цепь, однако уровень завершается, как только все квадраты-цели активированы. Так что описанная в виде «шаг, активация, вызов подпрограммы 1» подпрограмма 1 зациклит робота так, что он будет до бесконечности шагать вперёд и пытаться активировать каждый квадрат под собой. Также вы можете вызывать в конце подпрограммы 1 подпрограмму 2, а в конце подпрограммы 2 подпрограмму 1! Это даст вам целых 14 команд для бесконечного цикличного выполнения. Иногда более чем достаточно.

В общем, если вы не испугались текста выше, значит, вам обязательно понравится эта игра. Запускайте и программируйте маленького робота!