Core War
Скриншот программы Core War
Игра «Core War» под управлением симулятора pMARS
Тип Игра для программистов
Авторы Д. Г. Джонс и А. К. Дьюдни
Дата выпуска 1984
Аппаратная платформа Linux
Лицензия BSD, GNU GPL и бесплатное программное обеспечение

Бой в памяти (англ. Core War) — разновидность компьютерной игры «Дарвин», разработанная Александром К. Дьюдни. Помогал разрабатывать игру Дэвид Джонс, студент кафедры информатики университета Западной Онтарио, где преподавал Дьюдни.

В данной игре игроки разрабатывают компьютерные программы на специальном языке программирования, похожем на ассемблер — Redcode. Программы размещаются в циклически замкнутом участке памяти (core), состоящей из 8000 ячеек и зацикленной в кольцо. Каждая команда занимает одну ячейку. Redcode-программы работают под управлением MARS (англ. Memory Array Redcode Simulator — Симулятор Массива Памяти Redcode). Программы загружаются по случайным адресам в памяти.

Каждая программа (начиная со стандарта ICWS'1988) может иметь несколько активных потоков, причём поток может порождать другие потоки с помощью инструкции SPL. Потоки, принадлежащие одной программе, выполняются по очереди, поэтому скорость их выполнения обратно пропорциональна количеству потоков. Поток завершается, если пытается выполнить некорректную инструкцию. Программа, все потоки которой завершились, считается проигравшей.

Статьи, посвящённые игре, публиковались в журнале Scientific American в 19841987, в колонке Computer Recreations (Занимательный компьютер). Игра вызвала значительный интерес у читателей, и впоследствии было основано международное общество International Core War Society (ICWS) со штаб-квартирой в США и отделениями во многих странах мира, включая СССР.

ICWS проводила ежегодные международные турниры, начиная с 1986 года. Соревнования проводились по круговой системе. Первые два турнира были по сути чемпионатами Северной Америки. Турнир же 1988 года, проводившийся по новому стандарту игры ICWS'88, привлёк многочисленных участников из разных стран и стал де-факто первым чемпионатом мира. Победителями стали Евгений Лилитко (СССР) – 1-е место, Luca Crosara (Италия) – 2-е место и третьим стал Douglas McDaniels (США)[1]. Ещё один советский участник – Александр Бурцев занял пятое место. В настоящее время соревнования проводятся в основном по системе "King of the hill".

Разработать «Бой в памяти» Дьюдни побудила история о двух противоборствующих программах CREEPER и REAPER (см. компьютерный вирус). Обстоятельства разработки CREEPER/REAPER дошли до Дьюдни в несколько искажённом виде, так, по словам Р. Томлинсона, ни заражения ARPANet, ни «поединка» между двумя программами в действительности не было.

Redcode

править

Тут представлен стандарт ICWS'94 (последний). Все инструкции имеют 2 аргумента A и B, хотя не все используют их оба. В аргументах хранятся значения и совершаются операции адресации (инкремент/декремент). Предполагается, что A — источник, B — назначение.

Инструкции (<Инструкция> <Используемые аргументы> — <Описание>):

   DAT     - Останавливает выполнение потока.
   MOV A B - Скопировать источник по адресу в назначение по адресу. 
   ADD A B - Прибавить источник к назначению. 
   SUB A B - Вычесть источник к назначению. 
   MUL A B - Умножить назначение на источник. 
   DIV A B - Разделить назначение на источник. (При B=0 останавливает выполнение потока).
   MOD A B - Получить остаток от деления A на B. (При B=0 останавливает выполнение потока).
   JMP A   - Переместиться по адресу. 
   JMZ A B - Если B=0, перейти по адресу A.
   JMN A B - Если B не равно 0, перейти по адресу A.
   DJN A B - Вычесть из B единицу, и если B не равно 0, то перейти по адресу A.
   SPL A   - Создать новый поток по адресу A (начнёт выполнение после всех остальных потоков, включая проигравшего инструкцию)
   SEQ A B - Сравнить источник с назначением, и если они равны, то пропустить следующую инструкцию.
   SNE A B - Сравнить источник с назначением, и если они не равны, то пропустить следующую инструкцию.
   SLT A B - Сравнить источник с назначением, и если первое число меньше, чем второе, то пропустить следующую инструкцию.
   LDP  - загрузить из p-space (загружает число из персонального пространства потока)
   STP  - сохранить в p-space (сохраняет число в персональное пространство потока)
   NOP  - Ничего не происходит.

Адресация (префиксы к аргументам):

 # - Число.
 $ - Адрес (можно не указывать).
 * - A аргумент инструкции по адресу. 
 @ - B аргумент инструкции по адресу. 
 { - A аргумент инструкции по адресу. Аргумент сначала декрементится, а потом берётся. 
 < - B аргумент инструкции по адресу. Аргумент сначала декрементится, а потом берётся.    
 } - A аргумент инструкции по адресу. Аргумент сначала берётся, потом инкрементится. 
 > - B аргумент инструкции по адресу. Аргумент сначала берётся, потом инкрементится.
 Режимы адресации являются частью инструкции, а не аргумента. Когда берутся значения через *@{<}>, то предполагается, что это адрес.

Модификаторы (постфиксы инструкций):

 .A  - Взять A аргумент из источника в A аргумент назначения.
 .B  - Взять B аргумент из источника в B аргумент назначения.
 .AB - Взять A аргумент из источника в B аргумент назначения.
 .BA - Взять B аргумент из источника в A аргумент назначения.
 .F  - Взять AB аргументы из источника в AB аргументы назначения.
 .X  - Взять AB аргументы из источника в BA аргументы назначения.
 .I  - Взять весь источник в назначение.

Примечания

править
  1. The Third ICWS Tournament. Дата обращения: 12 ноября 2019. Архивировано 12 ноября 2019 года.

Ссылки

править

Статьи

править

Сайты

править

Примечания

править

📚 Artikel Terkait di Wikipedia

Red Digital Cinema Camera Company

видеосигнала — REDCODE[англ.]. Этот кодек основан на вейвлет-преобразовании со степенью сжатия от 3:1 до 18:1. На данный момент RAW-материал кодера REDCODE можно

Redcode

Redcode — язык программирования, созданный специально для игры «Бой в памяти». Автор языка – Александр Киватин Дьюдни (англ. Alexander Keewatin Dewdney)

Adobe After Effects

RED R3D (с помощью плагина REDCODE v1.3) 29 мая 2009 г. CS4 (9.0.2) Lottadotta Исправление вылетов, обновление плагина REDCODE до версии v1.7, поддержка

VirtualDub

plugin — mpg, m2v, vob, vro PVN plugin — pvn R3D plugin — поддержка R3D (Redcode RAW) Quicktime plugin — mov, mp4 WMV plugin — открывает Windows Media Video

Цифровая кинокамера

возможность получения видеоданных в несжатом формате RAW, например ARRIRAW или REDCODE RAW. Некоторые цифровые кинокамеры кроме электронного видоискателя дополнительно

Хронология языков программирования

Corporation dBase 1984 Common Lisp Гай Стил и многие другие Лисп 1984 Redcode А. К. Додни и Д. Г. Джоунс 1985 Object Pascal Apple Паскаль 1985 Paradox

Игра для программистов

игры «Дарвин», где программы написаны на язык Redcode и работают под управлением Memory Array Redcode Simulator. C Robots Pascal Robots Robocode — битва

Final Cut Pro

экспортировать выбранные диапазоны Встроенная поддержка необработанного кода Redcode Поддержка MFX через сторонний плагин Двойные средства просмотра с прицелами