Игра для программистов
Материал из Википедии — свободной энциклопедии
Игра для программистов — компьютерная игра, в которой игрок не участвует напрямую в игре. Взамен его целью является написать управляющую программу, сражающуюся с себе подобными программами. Такие игры являются сложным и нетривиальным упражнением для программистов.
Содержание |
[править] Классификация игр для программистов
[править] По языку программирования
Программа может писаться на особом виде ассемблера, либо на языках высокого уровня. Чаще всего применяются интерпретируемые языки наподобие Python, Java, C#.
[править] По цели игры
По цели игры такие игры делятся на:
- Бои в памяти. Задача программы — «завесить» программу противника.
- Настольные игры (например, на заре кибернетики были популярны шахматные турниры среди ЭВМ).
- Боевые роботы. Целью игры является создать управляющую программу для боевого робота или танка. В некоторых играх также можно изменять конфигурацию робота (тип мотора, брони, орудий и т. д.). Бои роботов довольно зрелищны для посторонних.
- Прочие игры. Управление гоночной машиной, колонией микробов, и т. д.
[править] История
В 1961 году в Bell Labs была разработана игра «Дарвин». В начала 1980-х годов под влиянием «Дарвина» была разработана игра «Бой в памяти». Ей суждено было стать популярной, она даже перешагнула «железный занавес»: в Переславле-Залесском была своя команда по «Бою в памяти».
В 1970 году прошёл первый шахматный турнир среди ЭВМ.
В начале 90-х годов Томом Пойндекстером была разработана игра C Robots — первая программистская игра, в которой надо было управлять боевым роботом. Боевой робот — тележка, снабжённая радаром и миномётом. Для сканирования местности надо было указать, на какой угол повернуть радар, и остроту диаграммы направленности. Чем шире диаграмма, тем больше шансов, что вражеский робот попадёт в сектор обзора, но и точность сканирования, соответственно, меньше. Миномёт стреляет осколочным снарядом, для выстрела надо задать направление и расстояние, на котором должен приземлиться снаряд. У этой игры было много недостатков: интерпретатор был достаточно неудачным; робот, который стрелял много, обычно побеждал робота, который стрелял метко.
Игра C Robots была усовершенсовована Дэвидом Мальмбергом и переведена на язык Паскаль, она получила название Pascal Robots (или P-Robots). В игру был добавлен расход топлива; если робот оставался без топлива, ему оставалось только ждать, пока кто-то не прикончит его. Появились препятствия и командная игра. Добавлена возможность конфигурировать робота: можно выбрать одну из трёх пушек, один из пяти моторов, один из пяти топливных баков, один из трёх вариантов брони, а также дополнительное оборудование: защитное поле, дистанционные бомбы, ремонтный комплект и маскировку. Впрочем, баланс между оборудованием не был проработан, и был написан робот Now, эксплуатирующий этот дисбаланс. Now не имел никакого интеллекта; фактически он являлся огромным топливным баком, снабжённым лёгким мотором, лёгкой бронёй и защитным полем. Пользуясь тем, что у роботов с лёгкой бронёй защитное поле расходует очень мало топлива, Now легко выигрывал и в массовой перестрелке, и один на один. Также после того, как были опубликованы исходные тексты Pascal Robots, обнаружилось несколько несоответствий поведения игры заявленному в документации: например, в документации сказано, что дистанционная бомба поражает всех роботов независимо от того, включен ли щит; в реальности защитное поле спасает от бомбы.
Пожалуй, самая известная игра о боевых роботах — Robocode, разработанная в IBM. Эта игра сильно отличается от Pascal Robots. Если в Pascal Robots программист задаёт роботу, в какую сторону ехать, и он автоматически выйдет на этот курс, то в Robocode надо задавать, на какой угол повернуть руль и с какой скоростью ехать. Все роботы экипированы одинаково. Также снаряды поражают не осколками, а прямым попаданием.
Игра Robocode также в некоторой степени решила «проблему арбитра». Если в Pascal Robots, чтобы не допустить утечки кода, нужна была нейтральная сторона, проводящая соревнования (арбитр), то в Robocode можно просто выложить для свободной скачки class-файл своего робота. Обфускация достаточно надёжно защищает робота от декомпиляции[источник?].
В 1995 году прошли первые заезды в автосимуляторе RARS (Robot Auto Racing Simulator). В 1997 году был начат проект TORCS, позволявший ездить как людям, так и роботам.
Ныне существует много игр для программистов, но лишь немногие из них действительно популярны.
Турниры по настольным играм среди ЭВМ малопопулярны, чаще проводятся шахматные турниры между людьми и компьютерами. Лучшие из шахматных программ для ПК (2006 год) играют на уровне гроссмейстера, программы для специализированных компьютеров уверенно обыгрывают даже чемпионов.
[править] Наиболее известные игры для программистов
[править] Бои в памяти
[править] Ссылки
GeekGames.Ru - игры для программистов
[править] Управление боевыми роботами
- C Robots
- Pascal Robots
- Robocode
- Robot Battle
[править] Прочие
- Colobot — программирование различных роботов
- Ceebot — программирование роботов на языке схожим с Си и java (от создателй colobot)
- RARS — программист должен создать искусственный интеллект для гоночного автомобиля.
- TORCS (англ.) — автосимулятор, основанный на RARS, и пригодный и для обычной езды, и как платформа для создания искусственного интеллекта.
- Snake — управление боевыми змейками.
- Война вирусов (Virus War) — создание колоний вирусов.
Это незавершённая статья о компьютерном программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |
Это незавершённая статья о компьютерных играх. Вы можете помочь проекту, исправив и дополнив её. |