Задачи
- Предложить возможность творчески и играючи изучать программирование
- Создать сообщество изучающих программирование для мотивации учиться и обменом знаний
- Предложить игры для повышения уровня навыков программирования
Идея обучаться через программирование – идея очень старая и эффективная. Дело в том, что бессмысленно просто читать и пытаться запомнить все команды, операторы, синтаксис, алгоритмами и так далее. Обучение программированию происходит тогда, когда ученик применяет знания: сталкивается с задачей, которую он пока решить не может, ищет решение, воплощает решение и наслаждается результатами своего решения. В идеале, если ученик на базе этого решения строит свои новые решения, создавая и оптимизируя классы, собственные функции. Логично, что с теми же задачами пользователь может столкнуться в более-менее сложной игре.
Наиболее интересных представителей программистских игр мы вынесли отдельно, посмотрите, например, Screeps: самая сложная и интересная игра по обучению программирования на JavaScript. В этой статье мы собрали более простые и типовые подходы к обучению программированию через игровые задачи. Общее у этих игр вот что: всегда есть некий игровой мир, который нуждается в помощи игрока. Есть или набор задачек и сложностей, которые нужно решить, или есть игровой герой, у которого есть игровые задачи, которые он также с помощью программирования может решить, или же в игровом мире ученик сталкивается с другими пользователями (или их алгоритмами) и чтобы их победить, игрок совершенствует алгоритм своего робота. Если в игре есть встреча с другими пользователями, то сама игра совсем не обязательно должна быть сложная, всю сложность и разнообразие туда вносят другие игроки. Если же других пользователей нет, а такую игру довольно сложно создать и сбалансировать, то создателям приходится делать множество уровней, разнообразных задач, чтобы контент у ученика не кончался, как можно дольше. В этом случае помимо игры (проверки знаний и умений игрока) мы можем добавить пошаговое обучение более сложным алгоритмом и функцией языка программирования.
Илья Курылев, эксперт в области геймификации, CEO студии Gamification Now!
Давайте рассмотрим подборку сервисов, с помощью которых можно изучить JavaScript, Python, TypeScript и др. навыки программирования игровой форме.
Code Wars — это комьюнити, где игроки могут совершенствовать свои навыки разработки, тренируясь с другими разработчиками. В игре есть как алгоритмические задачи, так и практические задачи, связанные с шаблонами проектирования. После каждой решенной задачи игрок может посмотреть на другие решения, рассортированные по рейтингу в зависимости от их красоты и практичности.
JS Robot — игра, в которой нужно написать код так, чтобы робот добрался до флага в конце каждого уровня. Для этого нужно управлять роботом через консольку. В игре 10 уровней сложности, перед началом игры можно выбрать любой уровень. На каждом уровне можно самому написать код, а можно воспользоваться кнопкой "показать решение".
Untrusted – онлайн-игра для людей, которые хотят попрактиковаться и проверить свои навыки в JavaScript. В игре нужно направлять доктора Эвала через машинный континуум к определенной точке, к выходу. Игра предоставляет собой игровую среду, похожую на лабиринт, как в игре змейка, и окно консоли с JavaScript-кодом. У игрока есть доступ ко всем исходным кодам, но, чтобы спастись, нужно внести необходимые изменения в этот код.
В игре есть несколько уровней
Robocode — игра с открытым исходным кодом, которая позволяет разработать боевого робота-танка с использованием Java или NET для борьбы с другими танками. Цель игры: создать танк, который сможет победить все вражеские танки на игровом поле. Игроку нужно написать ИИ для робота, чтобы он знал, что делать и как реагировать на события, происходящие на поле битвы.
Игра с открытым исходом дает возможность придумывать свои собственные надстройки или режимы, чтобы продемонстрировать свои навыки разработки.
У танка есть три основные компонента: движение, радар и стрельба. Танки способны двигаться вперед и назад. Радар танка позволяет обнаруживать вражеские танки, и в конечном итоге атаковать их. Уровень конкурентоспособности танка измеряется двумя характеристиками:
Игра полезна для изучения и практики нескольких языков программирования, таких как Java, Scala, и C# . Она также поможет попасть в сферу искусственного интеллекта. В Robocode есть собственный установщик, встроенный редактор роботов и компилятор Java.