CoreWAR
Se trata de un juego en el que dos programas en ensamblador luchan por destruirse mutuamente (sobreescribiendo, quitando recursos, causando errores de ejecución, etcétera).
En concreto, el lenguaje que se usará es Redcode, el cual se ejecuta en un entorno denominado M.A.R.S (Memory Array Redcore Simulator) donde la memoria viene dada por un array circular.
EL LENGUAJE
Redcode es un lenguaje ensamblador simplificado que consta de 17 instrucciones:
-
DAT data
SUB subtract
ADD add
DIV divide
NOP no operation
SPL split execution
JMZ jump if zero
JMN jump if not zero
CMP compare (see SEQ)
MUL multiply
SEQ skip if equal
SLT skip if less than
MOV move
JMP jump
MOD modula (remainder of division)
SNE skip if not equal
DJN decrement, jump if not zero
EL ENTORNO
Aunque existen bastantes entornos, nosotros recomendamos usar el IDE A.R.E.S por lo fácil que es crear, ejecutar, y debuggear los programas.
ESTRATEGIAS
Los programas de Redcode pueden ser tan complejos y pueden tener estrategias tan complicadas como se quiera; aunque hay tres estrategias básicas a partir de las que partir y hacer combinaciones:
Replicador (papel): Un replicador crea copias de sí mismo y las ejecuta de forma paralela llegando a llenar todo el espacio de memoria.
Escáner (tijeras): Un escáner busca al enemigo y lo ralentiza mediante instrucciones inútiles o lo intenta matar mediante instrucciones ilegales.
Bombardero (piedra): Un bombardero copia regularmente una bomba (normalmente una instrucción DAT).
ENLACES DE INTERÉS
Introducción: http://vyznev.net/corewar/guide.html
Buena introducción en español: https://goo.gl/WpDbdM
Estrategias e implementaciones: http://wikis.fdi.ucm.es/ELP/Core_War
Un montón de luchadores: http://corewar.atspace.com/warriors.html
microhobby
= https://artematopeya.wordpress.com/2009/09/21/jugando-core-wars-de-dewdney-bajo-emulador-de-zx-spectrum-para-nintendo-ds/
En RITSI incluso hay premios desde 2016
Active Redcode Elaboration System:
http://harald.ist.org/ares/
M.A.R.S