LightBot

Lightbot – это игра-головоломка, которая в процессе игры незаметно обучает основным принципам программирования.

Цель игры – с помощью небольшого набора команд: «идти», «повернуть влево», «повернуть вправо», «прыгнуть», «включить лампочку», и ограниченного числа мест для этих команд, заставить робота выполнить задание – зажечь все синие клетки.

В программе есть игровое поле-карта, на котором расположена комбинация кубиков, и робот, который по этим кубикам может перемещаться. Справа от игрового поля находится область с ячейками для «программирования». Каждая ячейка – это одна из команд.

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

Часть игрового поля, где происходит визуальное программирование бота состоит из трех частей. Верхняя часть – основная программа, средняя и нижняя – для составления подпрограмм (функций), которые затем можно использовать как в основной программе, так и вызывать друг из друга.

Просто давая роботу команды передвигаться и зажигать плитки, Lightbot позволяет игрокам наглядно на практике усвоить фундаментальные понятия программирования: составлять алгоритмы, выделять и оформлять повторяющиеся команды в подпрограммы (функции), вызывать их, использовать бесконечные циклы, учиться писать «универсальные» программы для обхода разных траекторий и т.п.

Учителя во многих частях света предпочитают Lightbot другим играм и программным продуктам для начального ознакомления школьников и студентов с основами программирования.

В первой версии Lightbot-а 40 уровней и 20 призовых звездочек (за самые короткие программы). Я бы сказал, эта игра является обязательной игрой не только для изучающих программирование, но и вообще для всех любителей головоломок любого возраста.

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