Можно ли с помощью игр научиться программированию?
Когда я говорю о том, что я программист, то сразу вижу одно и то же. Отводят глаза, вежливо улыбаются, стараются сменить тему. В случае везения мне поступит предложение об очередном приложении убийце, либо мне не везет и все заканчивается очередным спором. Но дело в том, что программирование намного интереснее, чем многим кажется. Например жанр видеоигр, так же относится к этой отрасли науки.
Но могут ли эти игры научить нас такой науке? Реально ли стать программистом через игровые просторы? Я нашел в стим три варианта игр для обучения. Давайте посмотрим на них, и узнаем, смогут ли они научить вас?
Понятно, что таких игр мало, в которых можно научиться писать код на C#, но здесь идеи программирования превращаются в зрительные сравнения и достижимые головоломки. Поэтому мы будем рассматривать эти игры, как теорию программирования, для того, что бы научить вас преобразовывать систему игры в коды программ. Мы также будем проходить эти игры в порядке возрастания сложности, чтобы было легче постигнуть эту науку.
Следует также подчеркнуть, прежде чем начнем, что это только наше мнение о возможности обучения, с помощью таких игр. Вперед!
Human Resource Machine (Кадровая Машина).
Сложность: Начальный уровень - средний уровень
Human Resource Machine - все об обработке данных. Конвейерная лента с надписью «В» доставляет плитки с цифрами и буквами, напечатанными на них, и вы должны отправить правильные, в соответствии с описанием каждой задачи, на конвейер с надписью «ВНЕ». Чтобы сделать это, вы составляете план команд для вашего работника, чтобы следовать - программе, по существу. Так как чередование плиток не одинаково, ваша система должна учитывать все возможные комбинации чисел и букв. Это проблема, с которой хорошо знакомы все программисты.
КМ делает большую работу по введению понятий доступным способом, давая вам время для ознакомления с каждой новой командой перед переходом на следующую. Более того, вы можете замедлить время, когда работник выполняет вашу программу, перешагивая каждую команду, чтобы точно видеть, где и почему она работает не так, как вы ожидали. Учитывая, сколько времени программист проводит для отладки, с такой практической нагрузкой проще понять, что нужно делать.
Однако доступность и легкость является лишь частью уравнения программирования. Принципиальный вопрос: может ли игра КМ научить вас, как программировать? Для того, чтобы ответить на этот вопрос, давайте копать немного глубже в понятиях решения головоломки работы КМ.
Понятие: основные переменные.
Что это такое?
Работа с неизвестными данными, будь то ленточный конвейер со случайными числами или буквами или командами световой клавиатуры от Старкрафт Про, является основным компонентом практически любой написанной программы. Поскольку программы не могут предсказывать будущее, они все же нуждаются в универсальном заполнителе для хранения и обращения к неизвестным данным во время их выполнения. Здесь переменные входят. Переменная - это помеченный контейнер для данных, которые могут быть опустошены и пополнены по мере необходимости.
Как его учат?
В КМ, напольная плитка служит в качестве заменителя переменных. В центре каждой комнаты головоломки, пол разделен на пронумерованные сетки, где можно временно хранить цифры и буквы, поступающие на конвейерной ленте. В списке команд, вы обращаете внимание на числовые метки этих плиток - начиная с 0, потому что в программировании подсчета всегда начинается с 0, а не 1. В качестве альтернативы, вы можете дать им свои собственные метки, как "FirstAdder" или "Талли", она поможет сделать вашу программу более простой. Это очень важный метод в программировании, особенно если несколько человек работают на одном и том же коде. Хорошо выученные переменные помогут понять сразу, где произошел сбой, вместо хаотичных воспоминаний о том, что делает ваш код.
Концепция: Массивы.
Кто они такие?
Если переменные используются для ссылки на одно значение или объект, массивы используются, когда вам нужно группировать целую кучу похожих объектов вместе.Вместо того что бы создавать код к каждому слоту, можно создать код ко всему инвентарю. Преимущество таких действий заключается в том, что на такие элементы можно ссылаться по отношению к объекту «инвентарь» следующим образом: инвентарь [0], инвентарь [1], инвентарь [2] ... Это позволяет очень легко писать код, проверяющий все слоты в инвентаре игрока, и с точки зрения сырой производительности, массивы намного быстрее, чем отдельные переменные.
Как его учат?
КМ не наносит удар с его реализацией массивов. Вместо того, чтобы ссылаться на плитки непосредственно через их этикетки, вы можете использовать значение внутри одной плитки в качестве метки, указывающей на другую. Например, плитка с цифрой '0' может иметь число 7 в нем.Например используя обычную команду copyfrom '0', вы получите ее обратно. Если вместо этого вы используете команду copyfrom [0], программа будет использовать 7 в качестве другой метки и получить значение внутри Tile 7. Не удивляйтесь, если вам не понятен принцип работы этой программы, она будет понятна только когда вы увидите её в действии. Важно отметить, что КМ позволяет вам делать это с помощью нескольких головоломок.
Понятия: Условные операторы (также известные как определения)
Кто они такие?
Программа не будет полезной, если будет выдавать одно и тоже, независимо от данных,заданных вами. Это будет похоже на игру, которая играет сама, игнорируя все вводные данные игрока и повторяя один и тот же цикл снова и снова. Программы должны принимать решения, будь то просто решение, какое из двух чисел больше, или определить, ударит ли арбалет игрока по его. Условные утверждения - это основа программы, искусственный эквивалент нашей программы.
Как их учат?
Чтобы все было просто, КМ включает только два вида операторов: прыжок это ноль, и переход, если отрицательный. Эти команды проверяют значение в руках вашего рабочего и «перескакивают» в другую часть вашей программы, если условие истинно. Если ваш работник держит -5, команда «прыгать если отрицательный» разрешит как правильное и будет следовать стрелке перехода к части программы, на которую вы указали ее. Если ваш работник держит 1 вместо этого, программа продолжит, как обычно, для следующей команды в строке. Это может показаться довольно простым, но в более поздних головоломках требуется куча команд «прыжок если», все работают вместе, их прыгающие стрелки перекрещиваются, как футбольная игра, разработанная самим дьяволом.
Концепция: Итерация (называется зацикливающимся)
Что это?
Повтор - это основа вычислений. Мы создаем программы для автоматизации задач, на которые не хотим тратить время, они называются циклами. Циклически перемещает стаи НПС вперед и назад по одному и тому же маршруту патрулирования. Петли поражают врагов огненным уроном каждую секунду, когда они горят. Петли поддерживают ускорение автомобиля до достижения максимальной скорости. Ручное кодирование каждой операции этих процессов было бы крайне неэффективно, а когда дело доходит до программирования, неэффективность является грехом.
Как его учат?
КМ сочетает в себе вышеупомянутые условные операторы со стандартной команды перехода, чтобы передать основы зацикливания. Есть два основных типа петель, "для петель" и "в то время как" петли, и КМ учит обоих. Для петель, которые выполняют набор команд, определенное число раз, с использованием одной плитки для пола в качестве счетчика, тянущего клещами вниз, пока она не удовлетворяет проверку скачка, если ноль и "разрывы" из цикла. В то время как петли функционируют почти таким же способом, за исключением того, вместо того, чтобы зацикливание заданное количество раз, они продолжают повторять в то время как некоторое условие истинно. По мере того как головоломки получить сложнее, вам нужно объединить оба типа петель с плитками массивов для обработки списков данных неизвестной длины. Это еще один краеугольный камень базового программирования, и КМ делает хорошую работу постепенно создавая его.
Вывод:
Создавая концепцию знакомых предметов, таких как конвейерные ленты и напольные плитки, и предлагая лишь небольшой список команд для работы, Кадровая Машина служит твердым введением в основные принципы программирования. Команды с цветным кодированием и полезные стрелки перехода отражают язык блок-схем, что упрощает отслеживание действий, выполняемых программой при ее выполнении. Терминология на заказ, такая как copyfrom и bump, может не перевести 1:1 на современные языки программирования, но идеи, которые они преподают, одно и то же. После освоения КМ вы будете хорошо подготовлены, чтобы начать изучать, как писать код по-настоящему.
Hack ‘n’ Slash (Руби и Режь).
Сложность: средняя - продвинутый
Может быть, вы хотите еще немного подготовиться, прежде чем погрузиться в мир программирования. Именно здесь в игру вступает Hack ‘n’ Slash. На первый взгляд кажется, что это типичная игровая приключенческая игра в стиле Зельды, но вместо того, чтобы вырубать врагов, вы их «рубите», используя свой USB-меч, чтобы перепрограммировать их поведение. Почти все объекты в мире могут быть перепрограммированы таким образом, вплоть до того момента, когда вы действительно можете заставить игру аварийно завершить работу, переписав свой код. Это относится как к выгоде игры, так и к ее ущербу; С одной стороны это открывает огромный простор для воображения, а с другой вы можете сделать только хуже, не зная за что беретесь. Но так можно описать принцип программирования более просто для непосвященного человека.
Основная проблема в Hack ‘n’ Slash состоит в том, что это фактически две разные игры, одна представляет собой головоломку в стиле Зельда, исследующая такие понятия, как переменные и подпрограммы, в большей глубине, чем Кадровая Машина, а другая - полный отладчик кода, который выводит вас в исходный код без доски для плавания. Этот сложный скачок делает Руби и Режь грубой игрой, но если вы можете это пропустить, здесь есть много полезного для изучения.
Концепция: Расширенные переменные
Кто они такие?
Как упоминалось ранее, переменные - это способы хранения данных в программе. В Руби и Режь они нужны для хранения намного больше, чем одиночные буквы и цифры в Кадровой Машине, и их роль в определении поведения программы становится гораздо более понятной.
Как они учат?
Руби и Режь разрабатывает концепцию переменных, вводя так называемые «типизированные» переменные. Это переменные, которые содержат только один вид, например "правда" или "ложь". Когда вы взламываете врага, всплывает список переменных, с которыми можно столкнуться, но здесь можно лишь изменять значения: вы не можете хранить буквы в числовом эквиваленте, или увеличить число за пределами определенных рамок. Вследствие выполнения этих незыблемых правил, вы постепенно узнаете разницу между логическими целыми, целыми числами и строками, пусть столкнулись с ними впервые.
Однако суть урока в переменных заключается в том, как их значения определяют поведение программы. Пробный и ошибочный путь через диапазон значений переменной - хорошая умственная практика для программиста, особенно при тестировании и отладке. Программа должна быть способна обрабатывать все возможные данные, брошенные в нее, даже если это значит отказ от данных, которые заставили бы это действовать фанк. Понимание того, что вы легко можете взломать своего врага этой игры, установив их переменную урона в -1, служит неоценимым уроком в важности правильного тестирования.
Понятие: синтаксис
Что это?
В любом языке есть правила построения слов и предложений, языки программирования имеют такие же правила объединения слов в предложения. Эта грамматика известна как синтаксис, и хотя она для каждого отдельно взятого языка своя, большинство языков программирования нашей современности следуют правилам, установленным около четырех десятилетий назад.
Как его учат?
Руби и Режь вводит систему синтаксиса во второй части, когда он сталкивается с голым кодом. Основанный на языке программирования Lua, код имеет ряд привилегий с его синтаксисом, в целях облегчения понимания. На практике выдуманная терминология только торгует одним видом путаницы для другого, ограничивая его реальную ценность в этом процессе. К счастью, наиболее распространенные синтаксические элементы остаются нетронутыми, знакомя вас с общим видом кода современности.
К таким грамматическим правилам относятся синтаксис точек, используемый в терминах типа Port.Value, который ссылается на переменную Value объекта Port, а также структуру операторов если ... когда для принятия решений. Чтобы помочь вам расшифровать эти часто вводимые в заблуждение правила, Руби и Режь переводит вас в параллельную версию кода, где переменные подаются в виде цветных кристаллов, попадающих в машины и обрабатывая их в действии. Цветные линии отслеживают поток программы между машинами, но расположение этих машин очень близко между собой и разобраться в них немного сложнее.
Понятие: Функции / Методы
Кто они такие?
Есть старая пословица в программировании, 90% времени работы программы тратится на исполнение 10% кода. Программа уделяет много времени, повторяя одни и те же действия. Чтобы воспользоваться этим, мы разделили наиболее распространенный код на отдельные значения, и всякий раз, когда программа должна запускать этот код, мы просто вызываем отдельно взятое значение с помощью команды веселая Функция. Она спасает от повторного написания одного и того же кода несколько раз в течение всей программы, и что более важно, это означает, что нам нужно только изменить один кусок кода, если часто используемая функция нуждается в доработке.
Как его учат?
Принимая форму самых больших машин в визуализированной версии кода, сами функции могут быть взломаны, как враги и другие объекты, делая для сценария создания ЭСК погружение в код внутри кода. Изменения, внесенные в код функции, будут распространяться по всей игре, что потенциально может привести к непредвиденным последствиям в дальнейшем. Такая опасность распространена в масштабных проектах, и научиться внимательно следить за всеми мелкими отклонениями это тоже очень хорошая практика для постижения программирования.
Итог:
Как игра, Руби и Режь имеет множество проблем. Как учебное пособие по программированию, оно заметно лучше. Подчеркивая влияние подгонки переменных и изображения функций как физических машин, он охватывает идеи, неоценимые для всех начинающих программистов. Пока вы готовы усердно учиться тому, сколько проб, ошибок и разочарований входит в кодирование, вы можете ухватиться за правила и построение различных процессов, которые лежат в основе всех языков современной эпохи.
TIS-100
Сложность: Продвинутый +
Первое, что вы слышите при запуске ТИС-100, - это холодная загрузка старого ЦРТ. Независимо от того, вызывает ли это ностальгическое настроение или нет, это хороший тест на лакмусовой бумажке о том, как вы будете относиться к компилятору на ассемблере, замаскированному под игру. Не ошибитесь: ТИС-100 предназначен для самых требовательных программистов. Если вы еще не знакомы с условными утверждениями, итерациями и т.д., Перед вами появится крутая кривая обучения. В принципе ТИС-100 на порядок сложнее первых двух примеров.
Язык ассемблера для непосвященных - это форма языка программирования, которая была распространена в 50-х и 60-х годах, а затем вытеснена более высокоуровневыми языками, такими как C в 70-х годах и позднее. Инструкции на языке ассемблера обычно основаны на машинном коде, который компьютер использует для общения с самим собой, и поэтому их значительно труднее читать и писать по сравнению с подобными Java и C #. Тем не менее, несмотря на свою древнюю чувствительность, ТИС-100 справляется с целым рядом концепций, которые остаются актуальными и по сей день.
Понятия: Общение
Что это?
Общение является важнейшей составляющей современного программирования. С онлайн-лидеров в многопользовательской Фпсс в ММО, в играх все больше общаются друг с другом, для того чтобы игровой процесс был интереснее. Программе здесь сложнее работать, потому что она не может предугадать, что сделает живой человек. Чтобы исправить это, программы общаются с помощью портов и разъемов, которые лежат в основе почтовых ящиков управляемых операционной системой. Программа может отправлять свои данные, в то время как проверять новые сообщения будет уже получатель.
Как его учить?
Программы в ТиС-100 разделены на узлы, каждый из них может сделать только ограниченное количество инструкций. Для достижения целей требуется много обмена данными между узлами. Хуже того, каждый узел может общаться только с определенным количеством пользователей, усложняя ситуацию еще больше. Создание рабочих требует определение каждого узла отдельно, тайный только для собственных операций. Получать их все, чтобы сотрудничать не с одним объектом, а с многими, так должен уметь каждый хороший программист. Вы очень быстро обнаружите, что совместить сразу несколько разных программ намного труднее, чем кажется вначале.
Понятие: Стек
Что это?
Подобно массивам, стек представляет собой контейнер для группирования связанных данных. Стек, тем не менее более важен для общих значений, где разные программы или разные части программы должны иметь доступ к одним и тем же данным без прямой связи друг с другом. Как следует из названия, стек сохраняет данные в вертикальном списке, придерживаясь протокола из конца в начало: при добавлении нового элемента он попадает в верхнюю часть списка, а когда элемент удаляется, все идет от начала списка. Думайте об этом как о стопке тарелок в ресторане «шведский стол», где завсегдатаи берут верх, а чистые блюда также помещаются наверху. Или кнопку «Назад» в Интернет-браузере и ее запись вашей недавней истории страниц.
Как его учат?
Поскольку программы, написанные вами, увеличиваются в сложности, перемещение данных между узлами, которые могут хранить только две вещи за раз, становится игрой китайских шепотов, причем вероятность ошибки только возрастает. Внедрение узлов стека с их безлимитными массивами данных дает вам средства для обработки гораздо более крупных наборов данных, хотя дополнительная емкость не освобождается. Вы должны рассмотреть такие проблемы, как взаимоблокировка, где один узел ожидает пополнения пустого стека, но узел, который пополнит его, в свою очередь ждет чего-то от исходного узла - пата! Тогда возникает проблема сохранения всех данных в одном стеке, не смешивая их. Взвешивание компромиссов использования узлов стека по сравнению с управлением данными вручную - это тот тип рассмотрения, который программисты делают на регулярной основе.
Вердикт:
Хотя ТИС-100 похож на реликвию прошлого, он никоим образом не устарел. От наложения меню к многоядерному программированию такие понятия, как стек памяти и сетевые порты, актуальны как никогда. Для программиста во время обучения, эта игра последнее препятствие, на пути к освоению этой науки. Сможете изучить принцип кодирования ТИС-100, в дальнейшем будет легче с более серьезными проектами.
Игры, которые помогут обучиться программированию
Выводы.
Итак, реально ли научиться программированию с помощью игр? Я думаю да, но и тут есть свои нюансы. Во-первых, не везде так хорошо видны проблемы программирования, как в этих трех играх. Проектные условия выполнения программы часто меняются в процессе разработки, и в некоторых случаях вы не поймете каков будет результат работы, пока не сделаете всё до конца, ну или не бросите эту задумку. Поэтому не обязательно ставить в резюме примером Кадровую Машину. Во-вторых, игры сами по себе не превратят вас в Джона Кармака. Они могут научить основам и помочь отточить навыки мышления в программировании, но все равно следует изучить и другие материалы, прежде чем начать изучать углубленную версию программирования.
Впрочем, если вы трезво оцениваете свои возможности и настроены решительно в достижении цели, игры, подобные тем, которые я рассматривал здесь, могут стать прочным камнем к будущему в программировании. Не забывайте о самом важном правиле работы в технологической индустрии: никогда не говорите никому, что вы начали разбираться в этой науке, чтобы на всю оставшуюся жизнь не стать персональным программистом для ремонта компьютеров ваших знакомых и родственников.
Главное меню
ЛУЧШИЕ МУЛЬТИПЛЕЕРНЫЕ ИГРЫ
Рекомендуют: 93% |
|
Рекомендуют: 92% |
|
Рекомендуют: 90% |
|
Рекомендуют: 90% |
|
Рекомендуют: 90% |
|
Рекомендуют: 90% |
- 1 из 67
- >
ИГРЫ ПО КАТЕГОРИЯМ
Клиентские игры
Браузерные игры
Фэнтези (MMORPG)
Шутеры (MMOFPS, MMOTPS)
Стратегии (MMORTS)
Космические (Sci-Fi)
Экшн-игры (Action-online)
Игры для девушек
-
ЕЩЁ >>
- 2D-игры
- 3D-игры
- Flash-игры
- Flash 3D-игры
- MOBA
- Аниме
- Аркады
- Браузерные 3D-игры
- Браузерные стратегии
- Браузерные шутеры
- Для детей
- Для мальчиков
- Китайские
- Корейские
- Космические стратегии
- Красивые
- Немецкие
- Необычные
- Обалденные
- Популярные
- Про зомби
- Про роботов
- Про танки
- Российские
- Сессионные
- Симуляторы
- Социальные
- Спортивные
- Средневековье
- Украинские
- Фермы
- Экономические
Добавить отзыв