январь 10, 2021

Corewar

Добавить
Мои игры
Торрент
Скачать

Об игре

В

Corewar играют две программы, написанные на Redcode, низкоуровневом языке, похожем на ассемблер.

Игроки пишут программу для устранения всех противников в памяти (ядре) виртуального компьютера.

Цель "песочницы" Corewar — написать код, который приведет к завершению кода вашего оппонента. Набор задач с возрастающей сложностью (как и во всех Zachlikes) еще предстоит создать.

Каждая ячейка памяти содержит инструкцию и два значения A и B. A и B используются как указатели адресов при выполнении инструкции. A и B также могут использоваться как данные, когда на них ссылается другая инструкция.

Эта игра является частью Zachlike Jam и в настоящее время находится в стадии разработки.

На приведенном выше экране с танцующими буквами показана память на 800 ячеек (ядро) с 1 инструкцией на ячейку памяти. Буквы представляют собой первый символ кода операции, хранящегося в этой ячейке памяти (таким образом, D = DAT, M = MOV, J = JMP и т. д.). Синий/красный цвет показывает, кто "владеет" (записал) эту ячейку памяти, а выделенные области показывают указатели инструкций для всех процессов этого цвета.

Пример кода воина

Эта программа перезапишет каждую четвертую позицию памяти инструкцией DAT, что потенциально может повредить и убить другой процесс:

0000: ADD # 4, $ 3
0001: MOV $ 2, @ 2
0002: JMP $ -2, # 0
0003: DAT # 0, # 0 Изучаем красный код

Прочитайте руководство для начинающих по Redcode – подробное введение в язык Corewar. Далее бНиже вы найдете обзор поддерживаемых кодов операций и режимов адресации в этой версии Corewar.

Пользовательский интерфейс

*скриншот главного меню*

При запуске картриджа вы входите в главное меню со следующими опциями:
Симулятор - запустить бой между двумя воинами
Редактор - написать код для кампании воина
Кампания - Завершить список испытаний (еще не реализовано)
Руководство - Внутриигровые подробности в инструкциях .

Симулятор


*скриншот выбора воина*

Выберите, какие два воина (синий и красный) будут сражаться друг с другом. Вы также можете заставить воина сражаться с копией самого себя.

*вступительный скриншот симулятора*

Воины загружаются в ядро ​​на одинаковом расстоянии (но со случайным смещением).
Размер ядра по умолчанию составляет 800 ячеек и будет работать в течение 8000 циклов. В нижней строке вы можете увидеть текущий цикл (белый #0), количество синих процессов (#1) и количество красных процессов (#1).

Когда у воина больше нет процессов (#0), он проигрывает, если оба воина все еще работают после 8000 циклов, игра считается ничьей.

Символы M,J,D,S,A и т. д. являются первыми символами кода операции в памяти, что дает вам представление об "отпечатках пальцев" каждого воина. Выделенный символ — текущая активная инструкция из очереди процесса.

Нажмите ❎, чтобы запустить/приостановить симуляцию. Нажмите 🅾️, чтобыпройти через это один цикл за один раз. Когда моделирование приостановлено, вы можете проверить память, перемещая курсор отладки (желтый квадрат) с помощью клавиш со стрелками.

*скриншот паузы в симуляторе*

В режиме паузы вокруг курсора отладки (выделено желтым) отображается объем памяти. Также показаны синие и красные активные инструкции.

*скриншот паузы в симуляторе*

Поработав некоторое время, вы можете увидеть, что оба воина породили множество процессов и заполнили ядро ​​своими данными/инструкциями.

*скриншот запуска симулятора*

Запускаем ❎ симуляцию на полной скорости.

*скриншот конца симулятора*

Моделирование закончилось на 8000 циклов, оба воина еще живы (синий с 7 процессами и красный с 26), в результате ничья. Вы можете перезапустить ❎ симуляцию или вернуться 🅾️ в главное меню. Если вы хотите выйти из симуляции до ее окончания, одновременно нажмите кнопки ❎ и 🅾️ во время паузы.

редактор

*скриншот редактора*

После запуска редактора вы можете просмотреть и изменить инструкции для текущего воина. Редактирование осуществляется с помощью 6 кнопок PICO-8; 4 клавиши со стрелками и кнопки ❎ и 🅾️. В редакторе кнопка ❎ обычно используется для редактирования/подтверждения, а кнопка 🅾️ — для отмены/сохранения и возврата в главное меню.

Вверху экрана отображается имя текущего воина (MICE), стартовая позиция (также обозначается tон -> стрелка в строке 001) и размер (8) кода.

В первом столбце указаны номера строк (000), за которыми следуют инструкция/код операции (DAT), модификатор адреса A (#), номер A (0), модификатор адреса B (#) и Адрес Б (0).

*изменить скриншот линии*

Используйте кнопки вверх/вниз, чтобы изменить текущую строку, вы можете войти в режим редактирования строки, нажав кнопку ❎, которая позволяет добавить новую строку выше/ниже (вверх/вниз) текущей строки, удалить текущую строку (слева) и установите начальную позицию (справа) на текущую строку. Вы можете вносить несколько изменений, находясь в режиме редактирования строки. Нажмите ❎, чтобы подтвердить изменения, или нажмите 🅾️, чтобы отменить их.

Используйте кнопки влево/вправо, чтобы выбрать столбец в текущей строке. Затем вы можете изменить значение столбца, нажав кнопку ❎.

*изменить скриншот кода операции*

При редактировании кода операции вы можете переключаться между кодами операций с помощью кнопки вверх/вниз. Нажмите ❎, чтобы подтвердить изменение, или нажмите 🅾️, чтобы отменить его.


*изменить скриншот режима адреса*

При редактировании кода операции вы можете переключаться между кодами операций с помощью кнопки вверх/вниз. Нажмите ❎, чтобы подтвердить изменение, или нажмите 🅾️, чтобы отменить его.


*изменить снимок экрана с номером*

При редактировании номера A или B вы можете изменить номер с шагом 1 с помощью кнопок вверх/вниз и с шагом 10 с помощью кнопок влево/вправо. Нажмите ❎, чтобы подтвердить изменение, или нажмите 🅾️, чтобы отменить его.

Красный код

Эта версия Corewar пытаетсяследуйте стандарту Redcode ICWS '94,
со следующими ограничениями для простоты и ограничениями PICO-8:
- только режимы #$@<
- без модификаторов кода операции (с использованием ICWS' 88 значений по умолчанию)
- без выражений
- без макросов
- без псевдоинструкций ORG, EQU или END
- без комментариев

Набор инструкций Redcode

Коды операций можно разделить на шесть групп:

Данные:
DAT — сохраняет данные, процесс, выполняющий DAT, завершается

Копирование:
MOV — копирование содержимого A в B

Простая математика:
ADD — добавить содержимое A к содержимому B
SUB — вычесть содержимое A из содержимого B
MUL - умножить содержимое A на содержимое B
DIV - разделить содержимое B на содержимое A
MOD - разделить содержимое B на содержимое A, взяв остаток

Управление потоком:
JMP — передача управления A (содержимое B игнорируется)
JMZ — передача управления A, если содержимое B равно нулю
JMN — передать управление A, если содержимое B не равно нулю
DJN — уменьшить содержимое B, затем передать управление A, если оно не равно нулю
SEQ — пропустить следующую инструкцию, если содержимое A и B равны
SNE — пропустить следующую инструкцию, если содержимое A и B не равно
SLT — пропустить следующую инструкцию, если содержимое A меньше B

Управление процессом:
SPL – создать новый процесс в A (содержимоеB игнорируется)

Разное:
NOP — ничего не делать (в целях отладки)

Адреса

Каждый адрес имеет режим адресации и указатель. Все указатели относятся к месту хранения адреса. 0 относится к текущему местоположению. 1 относится к следующему местоположению, а -1 к предыдущему. Существует 4 режима адресации:

$ - прямой - адрес представляет собой позицию по указателю
\# - непосредственный - адрес представляет собой текущую инструкцию
@ - B косвенный - значение B позиции по указателю указывает на адрес
< - предварительно уменьшить B косвенно - уменьшить значение B местоположения в указателе, а затем использовать косвенную адресацию B

Все значения берутся по модулю размера памяти (CORESIZE). Диапазон значений от 0 до CORESIZE-1. Например, если CORESIZE равен 800, -3 сохраняется как 797 (CORESIZE-3).

Как скачать Corewar через торрент

Всего несколько простых шагов и вы можете играть:

  • Устанавливаем программу μTorrent, через которую мы будем скачивать игры
  • Скачиваем торрент-файл репака игры Corewar
  • Двойным кликом открываем скаченный торрент-файл, программа μTorrent запустится автоматически и предложит вам выбрать место для скачивания файлов игры.
  • После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!