![](https://habrastorage.org/web/ed7/186/fc3/ed7186fc32d24ab8ae18c80ba1cfcbb6.jpg)
В детстве мы постигаем премудрости жизни через игру. Это важнейший элемент развития личности, социальных навыков, получения знаний об окружающем мире. Игры — хороший «контейнер» для донесения и закрепления каких-либо знаний. Яркий пример — игры, в которых нужно писать код. Наверняка все вы о них слышали, а в некоторые даже играли. Их первичная задача — развлечь людей, уже владеющих навыками программирования, но они могут использоваться и для обучения. Эти игры помогут освежить свои знания по тому или иному языку, отвлечься и заняться более простой алгоритмической задачей.
Grid Garden
http://cssgridgarden.com/
Язык: CSS
В этой незатейливой игре с несколько инфантильным интерфейсом нужно с помощью CSS-кода поливать полезные растения в огородике. Доступно 28 несложных для прохождения уровней.
Elevator Saga
http://play.elevatorsaga.com/
Язык: JavaScript
Если вы мечтали создавать алгоритмы для лифтов (а в реальности это весьма интересная и сложная алгоритмическая задача), то Elevator Saga — отличная песочница. Здесь абстрактно представлено здание из нескольких этажей и лифты, перевозящие людей. Нужно запрограммировать движение лифтов так, чтобы перевезти определённое количество пассажиров за указанный срок. По мере прохождения уровней увеличивается этажность и поголовье лифтов, а условия становятся строже.
CheckIO
https://checkio.org/
Язык: JavaScript, Python
Наверное, эта игра всё же ближе к обучающим, но и «уже обученным» программистам она тоже будет интересна. К тому же здесь очень приятная графика. С помощью кода нужно исследовать острова и решать различные задачи.
CodinGame
https://www.codingame.com/
Язык: C, С#, C++, Java, JavaScript, Python, Python 3, Bash, Clojure, Dart, F#, Go, Groovy, Haskell, Lua, Objective-C, OCaml, Pascal, Perl, PHP, Ruby, Rust, Scala, Swift, Swift 3, VB.NET
Здесь нужно программировать свою систему обороны для уничтожения врагов. Но не просто так, а с соблюдением определённых условий.
CodeWars
https://www.codewars.com/
Язык: Clojure, C, C++, C#, Crystal, Dart, Elixir, F#, Go, Haskell, Java, JavaScript, PHP, Python, Ruby, Rust, Shell, SQL, Swift, TypeScript
Настоящая игра для фанатов текстовых квестов. Вам даётся описание всевозможных задач с какими-то сюжетами, которые нужно решать в коде.
CSS Diner
https://flukeout.github.io/
Язык: CSS
Простенькая игра, позволяющая освоить (или освежить) азы CSS.
Untrusted
https://alexnisnevich.github.io/untrusted/
Язык: JavaScript
Приключенческая игра с олдскульной символьной графикой. Вам даются текстовые задания, которые нужно решить — внимание! — с помощью кода на JavaScript. Как неожиданно!
CodeHunt
https://www.codehunt.com/
Язык: C#, Java
Игрой это можно назвать весьма условно. Вам предлагается кусочек кода, нужно найти в нём ошибку и исправить. Большая круглая кнопка посередине вверху запускает проверку.
CodeCombat
https://codecombat.com/
Язык: Python, Java, CoffeeScript, Lua
В принципе, это игра больше обучающая, но пойдёт и знающим программистам. Сделана она в стиле RPG, с помощью кода нужно управлять персонажем и достигать поставленных целей.
Screeps
https://screeps.com/
Язык: JavaScript
ММО-игра, в которой нужно программировать ИИ своих абстрактных юнитов. Нужно строить базу, добывать ресурсы, управлять территорией, экономикой, производством, транспортировкой и так далее. Чем лучше ваши скрипты, тем лучше идёт игра. Причём ваше хозяйство работает круглосуточно, даже если вы в оффлайне.
TIS-100
http://www.zachtronics.com/tis-100/
Язык: ассемблер
Это игра с открытой концовкой. В ней нужно переписывать испорченные куски кода на ассемблере, чтобы восстановить TIS-100 и раскрыть его секреты.
Знаете другие игры для программистов? Кидайте ссылки в комменты.
Комментарии (46)
yizraor
16.05.2017 21:53+5SHENZHEN IO — программирование микросхем, но несколько иначе по сравнению в TIS-100
FeNUMe
16.05.2017 22:02+1Немного из другой «оперы»: Space Engineers(С#), KSP(с модами kOS или kRPC — C#, C++, Java, Lua, Python, Ruby, Haskell), From The Depth(Lua). Но как по мне значительно интересней, потому что программируешь автопилоты для своих творений или целую космическую программу — ощущения от запрограммированного тобой полностью автоматического полета к луне с посадкой и возвратом не передаваемы.
ma1uta
16.05.2017 23:12+1http://store.steampowered.com/app/400110/Else_HeartBreak/ — Else Heart.Break(), открытый мир, где можно что угодно перепрограммировать.
http://www.zachtronics.com/shenzhen-io/ — Shenzen I/O — программирование микроконтроллеров.
forgetable
16.05.2017 23:14+1Сразу вспоминается Human Resource Machine. Там, конечно, не нужно писать код, но задумка похожая, да и сама игра интересная.
alexeymalov
17.05.2017 08:00+1Playcodemonkey.com
При помощи кода на coffee script управляешься обезьянкой и другими объектами на экране, чтобы собрать бананы
Inkognitoo
17.05.2017 08:29flexboxzombies.com ещё интересная штука, правда последние главы сейчас находятся в процессе написания, у автора так же есть блог где он описывает некоторые моменты связанные с созданием игры
Lirein
17.05.2017 10:16Одна из старейших — была ещё по ДОС — Robocom Workshop — программируем роботов на языке приближенном к ассемблеру. Можно выплнять код в разных банках памяти, перепрограммировать банки у других роботов, форкаться (клонировать робота) и т.д. На каждую инструкцию тратится определенное количество времени. Можно проводить соревнования и целые турниры.
potan
17.05.2017 10:57Эх, нет ни одной игры, поддерживающей язык Prolog…
По моему, в эпоху блокчейна, очень полезной была бы экономическая многопользовательская игра с поддержкой «умных контрактов». Ни кто такой не видел?
Meis
17.05.2017 10:58Hackmud, хоть я не играл, но может найдутся заинтересовавшиеся.
http://store.steampowered.com/app/469920/hackmud/
Vizrok
17.05.2017 10:58+1Для майнкрафта есть несколько модификаций, добавляющих виртуальные терминалы, позволяющие кодить в частности на Lua различную логику. Собственно, в ванильном майнкрафте реализована механика логических схем, в дальнейшем успешно модиффицированная до сумасшедших схем исключительно на использовании «И» «Или» «Не» и иже… Также, по книге, описанной в следующей статье, в том же Майнкрафте можно наглядно изучать Python
T-362
17.05.2017 12:26+1Да кстати, отличная штука, самое главное там с терминалами был программируемый на луа робот, умеющий копать и ставить блоки. Конечно порог вхождения выше, но возможность заставить «злой куб с киркой» построить тебе башню, или пройтись по соседним домам выковыривая из стен полезные блоки, бесценна.
Ну и тогда можно вспомнить GarrysMod с дополнением с проводами и чипами — можно как физически «распаять логику на плате» так и написать в одном чипе-ЦПУ.
PetrPetrowitch
17.05.2017 10:58для андроида:
Hacked (питоноподобные скрипты)
Gladiabots (арены роботов с програмируемым АИ програмирование drag&drop, но мозг поламать можно)
ну и для Пк HumanResourseMachine drag&drop ассемблер. тоже иногда взрів мозга особенно изза того что циклов как таковых нет а есть только переходы и условияzuborg
18.05.2017 08:19gladiabots пробовал, несколько хромает баланс — практически под все арены было достаточно одного единственного кода (который работал хуже чем задумано т.к. не всё в полной мере программируется).
Но в целом задумка хорошая.
Cheater
17.05.2017 12:20Не уверен, подходит ли по требованиям, но есть такой рогалик Nethack (www.nethack.org). Это не игра, где игрок пишет непосредственно код, как в исходном посте, а классический rogue-like. Но исследование и модификация кода игры является её традиционной частью в игровом сообществе и именуется source diving. Игроки исследуют код для понимания игромеханики, для «читерства» через модификацию кода, ит.д. Язык — C.
BDEsoft
17.05.2017 12:27И моя игра
Язык программирования — ассемблер. Вот только графику так и не смог нарисовать нормальную:)
alexzzam
17.05.2017 12:33+1«Здесь нужно программировать свою систему обороны для уничтожения врагов.» это не про codingame, а про первую тривиальную задачку из него.
Так-то там всё интересно и разнообразно, а в каждой задаче свой сюжет. Плюс многопользовательские игры.
Dovgaluk
17.05.2017 14:11+1Nether Earth, хе-хе
Fraxi
17.05.2017 17:42Тоже игра со времён Спека, однако так и не появилась на других ПК: Soldier of Future По современным меркам скорее RPG + «визуальное» программирование. Заигрывался ею в своё время.
Хотя возможно это клон или копия какой-то игры с PC.
BDEsoft
17.05.2017 15:29-1И еще одна моя программа не вышедшая в свет изза недостатка дизайна)
Программа для робота пишется путем вытаскивания пиктограм и их соединений.
Есть даже видео
zapolnoch
17.05.2017 16:20+3Time to go home and relaxValery4
18.05.2017 16:15+1От автора http://cssgridgarden.com/ только про Flexbox
https://flexboxfroggy.com
Valery4
18.05.2017 16:18Ещё не совсем про программирование, а скорее около.
Изучение Vim в игровой форме. Давно не смотрел, раньше было всего несколько у ровней бесплатно.
https://vim-adventures.com
arpeggio
23.05.2017 15:54Помню, в 2013м году сильно залипал в trAInsported.
Написана немецким парнем, код есть на гитхабе. В игре надо кодить на lua ИИ для управления системой простых поездов.
В игре даже есть русская локализация, сделанная мной)
zuborg
SpaceChem — химический ассемблер, думаю, представлять нет обходимости
Robozzle — заковырыстая головоломка (Android) — программируем маршрут робота
http://vindinium.org/ — онлайн-батл через http-API, управляем ботом в а-ля-рогалике в игре против 3 других игроков, лимит на ход — 1 секунда.
Z0K
У Robozzle есть и веб-версии:
Silverlight: http://robozzle.com/
JS: http://robozzle.com/js/
HTML5: http://robozzle.com/beta/
PoliTeX
Robozzle есть и онлайн, но на сильверлайте.