Bomber
Información general | ||
Dwarf | Core War Bomber | |
La estrategia básica de los bomber es el uso de bombas de forma aleatoria con la esperanza de aplastar al programa oponente.
Código de ejemplo: Dwarf
Dwarf es un guerro simple pero efectivo. Este programa instala bombas de DATs en zonas aleatorias del core mientras garantiza que no se autodestruya.
ADD #4, 3 ; execution begins here MOV 2, @2 JMP -2 DAT #0, #0
El funcionamiento es sencillo. La primera instrucción añade al valor almacenado en el DAT de la última instrucción (4), mov copia el dat (bomba) en la posición indicada por el dat (la cual es aumentada en cada iteración por el add anterior), jmp permite que el programa vuelva a la instrucción add (y así repetir en un bucle). DAT es la bomba.
La seguridad (evitar su autodestrucción) se garantiza asegurando que en ningún momento del bucle la bomba afecte a su funcionamiento. Esto se garantiza con la siguiente instrucción:
- assert CORESIZE % 4 == 0
Al ser el Core divisible por 4 se garantiza que la bomba nunca caiga en las tres primeras instrucciones (add, mov, dat). En cada iteración, la cuenta aumenta en 4 por lo que la bomba siempre cae en la posición anterior al ADD y en la posición del DAT.