Бой в памяти: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 29: Строка 29:
* [http://www.ecst.csuchico.edu/~pizza/koth/icws94.html "Annotated Draft of the Proposed 1994 Core War Standard"] version 3.2
* [http://www.ecst.csuchico.edu/~pizza/koth/icws94.html "Annotated Draft of the Proposed 1994 Core War Standard"] version 3.2
* [http://www.koth.org/ Corewars - King Of The Hill!]
* [http://www.koth.org/ Corewars - King Of The Hill!]
[en:Core War]
[[en:Core War]]

Версия от 19:50, 28 сентября 2005

Бой в памяти - разновидность компьютерной игры "Дарвин" разработанная А. К. Дьюдни. Статьи посвященные игре публиковались в журнале Scientific American в 1984-87 годах, в колонке Computer Recreations (Занимательный компьютер). Игра вызвала значительный интерес у читателей и, в последствии было основано международное общество International Core War Society со штаб-квартирой в США и отделениями во многих странах мира, включаяя СССР. Также было разаработано несколько стандартов, описывающих правила игры. Разработкой "Боя в памяти" Дьюдни побудила история о двух противоборствующих программах CREEPER и REAPER (см. компьютерный вирус). Обстоятельства разработки CREEPER/REAPER дошли до Дьюдни в несколько искаженном виде, так по словам Р. Томлинсона ни заражения ARPANet, ни "поединка" между двумя программами в действительности не было.

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

Redcode

Ниже приведены команды языка Redcode в том виде, в котором они были опубликованы в статье А. Дьюдни

 Инструкция
     Аргументы
         Код
            Описание
 MOV A B 1  - переслать содержимое ячейки с адресом A в ячейку с адресом B
 ADD A B 2  - прибавить содержимое ячейки с адресом A к ячейке с адресом B
 SUB A B 3  - вычесть содержимое ячейки с адресом A из ячейке с адресом B
 JMP A   4  - передать управление на адрес A
 JMZ A B 5  - передать управление на адрес A, если содержимое ячейки с адресом B равно нулю
 JMG A B 6  - передать управление на адрес A, если содержимое ячейки с адресом B больше ноля
 DJZ A B 7  - вычесть единицу из содержимого ячейки с адресом B и передать управление на адрес A,
              если содержимое  ячейки с адресом B равно нулю
 CMP A B 8  - сравнить содержимое ячеек с адресами A и B, если они не равны - пропустит следующую инструкцию
 DAT   B 0  - неисполняемое выражение, B - данные

Ссылки