stringtranslate.com

Игра программирование

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

Как головоломки

Ранними играми этого жанра являются System 15000 и Hacker , выпущенные в 1984 и 1985 годах соответственно.

Игры на программирование использовались как часть игр-головоломок, бросая игроку вызов для достижения определенного результата после того, как программа начинает работать. Примером такой игры является SpaceChem , где игрок должен использовать свой визуальный язык, чтобы манипулировать двумя Уолдо , чтобы разбирать и собирать химические молекулы. В таких играх игроки могут тестировать и отлаживать свою программу так часто, как это необходимо, пока не найдут работающее решение. Многие из этих игр побуждают игрока находить наиболее эффективную программу, измеряемую количеством необходимых временных шагов или количеством требуемых команд. Другие похожие игры включают Human Resource Machine , [1] Infinifactory и TIS-100 . Zachtronics — компания по разработке видеоигр, известная своими головоломками, ориентированными на программирование . [2]

Другие игры включают элементы программирования как части головоломок в более крупной игре. Например, Hack 'n' Slash включает метафору возможности доступа к внутренним программам и переменным объектов, представленных в игровом мире, приостанавливая остальную часть игры, пока игрок взаимодействует с этим программным интерфейсом, и изменяя программу объекта для дальнейшего прогресса; это может быть изменение состояния объекта с неразрушаемого на разрушаемое. Другие похожие игры с таким подходом к программированию включают Transistor , else Heart.Break() , Glitchspace и Pony Island . [3]

Другой подход, используемый в некоторых графических играх с элементами программирования, заключается в предоставлении игроку интерфейса командной строки для отдачи приказов через доменно-специфический язык для управления объектами в игре, что позволяет игроку повторно отдавать команды по мере изменения ситуации, а не создавать готовую программу. В таких играх, как Quadrilateral Cowboy и Duskers, пользователь управляет несколькими небольшими роботизированными существами в тандеме с помощью языка кода для достижения определенной цели. [3] Hackmud предоставляет игроку смоделированный интерфейс мэйнфрейма, через который он отдает команды для продвижения вперед. [4]

Как соревновательные игры

Во многих играх по программированию есть управляемые сущности, такие как роботы , танки или бактерии , которые стремятся уничтожить друг друга. Такие игры можно считать средами цифровых организмов , связанными с имитацией искусственной жизни . Ранним примером является Core War (1984), где программы, написанные на стандартизированном языке, похожем на ассемблер, сражаются за место в конечной памяти (виртуальные магнитные сердечники ). Игрокам предоставляются инструменты для разработки и тестирования своих программ в рамках доменно-специфического языка игры, прежде чем отправлять программу на центральный сервер. Затем сервер запускает программу против других и сообщает результаты игроку, из которого они могут вносить изменения или улучшения в программу.

Существуют различные турниры и лиги для игр по программированию, где персонажи могут соревноваться друг с другом. Обычно сценарий оптимизируется для специальной стратегии. Аналогичные подходы используются для более традиционных игр; Чемпионат мира по шахматам среди компьютеров состоит из матчей между программами, написанными для абстрактной стратегической игры в шахматы .

Игра в соревновательное программирование также нашла свое применение в различных настольных играх, таких как RoboRally или Robot Turtles , где программа обычно становится заранее подготовленной колодой игральных карт, которые по одной используются для выполнения этого кода. [5]

Исследователи представили RoboCode как субстрат «проблемно-ориентированного обучения» для преподавания программирования. [6]

Связанные области

Игры с открытым миром, в которых игроки могут создавать окружение из массива строительных блоков, часто использовались более продвинутыми игроками для создания логических схем и более сложных программ из фундаментальных блоков. Minecraft — один из таких примеров, поскольку, хотя игра предоставляет ограниченный набор блоков, имитирующих переключатели и электрические цепи, пользователи смогли создать базовые функциональные компьютеры в виртуальном мире, и по крайней мере одна модификация направлена ​​на то, чтобы научить детей программировать на виртуальном компьютере на упрощенном языке. [7]

Несколько сайтов, таких как Codecademy , помогают обучать реальным языкам программирования с помощью геймификации , где принципы видеоигр используются для мотивации пользователя. [8]

Смотрите также

Ссылки

  1. ^ Sayer, Matt (3 октября 2016 г.). «Могут ли видеоигры научить вас программированию?». Rock Paper Shotgun . Получено 3 октября 2016 г. .
  2. ^ Тарасон, Доминик (7 февраля 2019 г.). «Книга Zachtronics Zach-Like показывает, как делается колбаса-головоломка». Rock Paper Shotgun .
  3. ^ ab Caldwell, Brendan (9 ноября 2015 г.). "10 лучших игр по хакерству, кодированию и вычислениям". Rock Paper Shotgun . Получено 3 октября 2016 г.
  4. Колдуэлл, Брендан (27 сентября 2016 г.). «Wot I Think: Hackmud». Rock Paper Shotgun . Получено 3 октября 2016 г.
  5. ^ Метц, Кейд (24 сентября 2014 г.). «75-летняя сага об игре, которая учит дошкольников кодировать». Wired . Получено 3 октября 2016 г.
  6. ^ О'Келли, Джеки и Дж. Пол Гибсон. «RoboCode и проблемно-ориентированное обучение: недирективный подход к преподаванию программирования». ACM SIGCSE Bulletin 38, № 3 (2006): 217-221.
  7. Финли, Клинт (18 августа 2014 г.). «Новый мод Minecraft учит вас программировать по мере игры». Wired . Получено 3 октября 2016 г.
  8. ^ Винсент, Элис (19 августа 2011 г.). «Codecademy „игрифицирует“ процесс изучения Javascript». Wired . Получено 3 октября 2016 г.

Внешние ссылки