Core War
von Benedikt
Ich bin ja total begeistert: Bei Coding Horror gibt es einen Artikel über “Core War“. Das ist ein Spiel, bei dem man kleine Programme in einer Art Assembler-Sprache schreibt, deren Ziel es ist, sich gegenseitig zu zerstören.
Ich hab’ da vor fast 10 Jahren mal ein bisschen mit rumgespielt – insgesamt ist das Konzept aber fast 25 Jahre alt. Da ja kaum noch jemand ohne irgendeine Hochsprache programmieren will, hat es wahrscheinlich über die Jahre etwas an Reiz verloren, aber ich persönlich muss sagen, dass mir dieses puristische Konzept von Core War immer noch besser gefällt als beispielsweise RoboCode.
Im einfachsten Fall sieht ein solches Programm ungefähr folgendermaßen aus:
loop MOV bomb, @ptr
ADD #5, ptr
JMP loop
bomb DAT $0
ptr DAT #100
Dieses klassische Programm mit dem Namen “Dwarf” kopiert die “bomb”-Zeile immer alle 5 Zeilen in den Core (der virtuelle Adressierungsraum, innerhalb dessen Core War gespielt wird). Wird nun diese Zeile in ein anderes Programm kopiert, welches bei seiner Ausführung dann auf diese Zeile stößt, terminiert das gegnerische Programm. Das ist auch grundsätzlich das Ziel: Das gegnerische Programm dazu zu bringen, eine “DAT”-Zeile auszuführen, was dazu führt, dass das Programm terminiert.
Mehr Infos gibt’s wie gesagt bei bei Coding Horror im Artikel “Core War: Two Programs Enter, One Program Leaves”
Kommentare
Schön, noch jemand dem das puristische an Corewar besser gefällt als Robocode und Verwandte
Fand den Artikel auch recht interessant, ebenso aber die Kommentare.
Hat mich endlich dazu bewogen das eigentlich geplante ‘Coreblog’ online zu bringen und mich wieder intensiver mit Corewar zu befassen.
Tja, dann werde ich dein Blog doch mal im Auge behalten…