Guerra del Núcleo


Core War es un juego de programación de 1984creado por DG Jones y AK Dewdney en el que dos o más programas de batalla (llamados "guerreros") compiten por el control de una computadora virtual . Estos programas de batalla están escritos en un lenguaje ensamblador abstracto llamado Redcode .

Al comienzo de un juego, cada programa de batalla se carga en la memoria en una ubicación aleatoria, después de lo cual cada programa ejecuta una instrucción por turno. El objetivo del juego es hacer que los procesos de los programas opuestos terminen (lo que sucede si ejecutan una instrucción no válida), dejando el programa victorioso en posesión exclusiva de la máquina.

La primera versión publicada de Redcode definía solo ocho instrucciones. El estándar ICWS-86 aumentó el número a 10 mientras que el estándar ICWS-88 lo aumentó a 11. El borrador de estándar 1994 actualmente utilizado tiene 16 instrucciones. Sin embargo, Redcode admite varios modos de direccionamiento diferentes y (a partir del borrador del estándar de 1994) modificadores de instrucción que aumentan el número real de operaciones posibles a 7168. El estándar Redcode deja la representación de la instrucción subyacente indefinida y no proporciona ningún medio para que los programas accedan a ella. . Las operaciones aritméticas se pueden realizar en los dos campos de dirección contenidos en cada instrucción, pero las únicas operaciones admitidas en los códigos de instrucción mismos son copiar y comparar por igualdad.

Existen varias versiones de Redcode. La primera versión descrita por AK Dewdney [1] difiere en muchos aspectos de los estándares posteriores establecidos por la International Core War Society, y podría considerarse un lenguaje diferente, aunque relacionado. La forma de código rojo que se usa con más frecuencia en la actualidad se basa en un borrador de estándar presentado al ICWS en 1994 que nunca fue aceptado formalmente, ya que el ICWS se había extinguido efectivamente en esa época. El desarrollo de Redcode, sin embargo, ha continuado de manera informal, principalmente a través de foros en línea como el grupo de noticias rec.games.corewar[2] .

Los guerreros se dividen comúnmente en varias categorías amplias, aunque los guerreros reales a menudo pueden combinar el comportamiento de dos o más de estos. Tres de las estrategias habituales ( replicador , escáner y bombardero ) también se conocen como papel, tijeras y piedra , ya que su actuación entre sí se aproxima a la de sus homónimos en el conocido juego infantil. [3]

Con una comprensión de las estrategias de Core War , un programador puede crear un guerrero para lograr ciertos objetivos. Las ideas revolucionarias surgen de vez en cuando; la mayoría de las veces, sin embargo, los programadores basan sus programas en guerreros ya publicados. Usando optimizadores como OptiMax o herramientas de optimización de pasos centrales, se puede crear un guerrero más efectivo.