www.wikidata.de-de.nina.az
Core War Krieg der Kerne ist ein Programmierspiel bei dem zwei oder mehr Programme die in einer simplen assemblerartigen Sprache namens Redcode geschrieben sind im selben Speicherraum gegeneinander antreten Gewinner ist das Programm das alle anderen uberlebt Obwohl Core War fur beliebige Arten des Spiels stehen kann wird gemeinhin die Variante gemeint die auf der Programmiersprache Redcode basiert und durch die Artikel von Alexander K Dewdney im Scientific American bekannt wurde Core WarLeitende Entwickler D G Jones A K DewdneyVeroffentlichung 1984Plattform Memory Array Redcode SimulatorGenre ProgrammierspielSpielmodus EinzelspielerSprache EnglischInformation LizenzBSD Lizenz GPL v2 Core War entwickelt die Spielidee von Darwin aus dem Jahr 1961 weiter Wahrend bei Darwin die Programme direkt auf dem Computer ausgefuhrt wurden kommt bei Core War der Memory Array Redcode Simulator MARS eine virtuelle Maschine zur Anwendung Die International Core War Society ICWS hat 1984 und 1988 Revisionen von Redcode veroffentlicht ein Update Vorschlag von 1994 wurde nicht verabschiedet Inhaltsverzeichnis 1 Kampfregeln 2 Programme 2 1 Zwilling 2 2 Mice und Catcan 2 3 Agony 3 Adaptierungen fur die Evolutionsforschung 4 WeblinksKampfregeln BearbeitenRedcode als Kampfsprache unterscheidet sich von anderen Assembler Sprachen Es wird nur relative Adressierung verwendet Der Speicherraum Core ist ringformig Adressen sind daher als Moduli der Speichergrosse zu interpretieren Jedes mogliche Argument eines Befehls ist auch ein gultiges Argument Daten werden als Argumente des Befehls DAT gespeichert Durch Ausfuhrung von DAT als Befehl stirbt der Prozess Programme BearbeitenDas einfachste Programm imp im deutschen Knirps bestehend aus einer Anweisung mov 0 1 kopiert seinen Inhalt ein Feld weiter und geht dann auf dieses Feld Zwilling Bearbeiten Gemini im deutschen Zwilling macht von seinem Programm eine komplette Kopie und springt dann in seine Kopie jmp 3 dat1 dat 0 dat2 dat 99 start mov dat1 dat2 add 1 dat1 add 1 dat2 cmp dat1 dat3 jmp start mov 99 94 jmp 94 dat3 dat 10 Erst mit der Einfuhrung des Befehls SPL split aufspalten kam Dynamik in das Spiel Das zeigte sich an zwei Programmen mit verschiedenen Strategien Mice und Catcan Bearbeiten Wahrend das Programm Mice von Chip Wendell den Befehl SPL benutzt um sich kontrolliert aufzusplitten ptr dat 0 org mov 12 ptr n 12 loop mov ptr lt dest dest ptr ptr djn loop ptr if ptr 0 goto loop spl dest split dest add 653 dest dest 653 jmz org ptr if ptr goto org dest dat 0 833 end org benutzt das Programm Catcan die Anweisung als Split Bombe um den Gegner auszuschalten um ihm zuletzt durch Ausloschung den Garaus zu machen Warrior Cat Can Standard CWS 88 Author A Kirchner Remixor F Uy start mov trap2 lt bomb mov trap1 lt bomb sub 6 bomb jmn start bomb trap loop set mov 12 bomb kill mov bomb bomb djn kill bomb kill loop reset jmp set 0 jmp set 0 dat 0 0 buffer bomb dat 0 1024 trap1 spl 0 2 trap2 jmp 1 1 end start Your basic two sweep methodical bomber Fires SPL 0 and JMP 1 at every eight addresses then erases the core with DAT bombs Obwohl Mice gegen die meisten alteren Gegner Gnome Zwilling uberlegen war war Catcan mit seiner Split Bombe noch erfolgreicher Um die Konsequenz der SPL Anweisung zu verstehen muss man wissen wie ein Duell in Core War aussieht Der Ablauf sieht namlich vor dass erst das eine Programm eine Anweisung ausfuhrt und dann das andere Programm Wenn nun ein Programm eine SPL Anweisung ausfuhrt bewirkt das dass der Ablauf eines Programms auf zwei verschiedene Teile aufgespaltet wird Ohne Split ist der Ablauf bei zwei Programmen A und B A B A B A B Wenn sich nun Programm B genau einmal in zwei Prozesse aufspaltet was durchaus sinnvoll sein kann ist der Ablauf A B1 A B2 A B1 A B2 A B1 A B2 Wenn ein Programm nun von einer SPL Bombe getroffen wird oder in eine solche hineinspringt dann muss das Programm einen exponentiell steigenden bis zur Grenze von 64 moglichen Prozessen Anteil seiner Rechenzeit fur die vollig unnutzen Anweisungen aufwenden wodurch seine sinnvollen Aktionen massiv verlangsamt werden Agony Bearbeiten Mit dem 94er Standard entstanden zahlreiche Programme die so genannten Scanner und Vampire die dem Catcan weit uberlegen sind zum Beispiel das Programm Agony 2 1 von Stefan Strack strategy Small interval CMP scanner that bombs with a SPL 0 carpet strategy 2 0 smaller strategy 2 1 larger but should tie less changed scan constants strategy Submitted date CDIST EQU 23 distance between addresses CoMPared IVAL EQU 994 scan increment mod 2 pattern scan ADD incr comp CMP scan loop comp CMP 0 CDIST SLT incr comp CDIST bptr comp 1 comp don t bomb self JMP scan MOV CDIST bptr comp 1 count init bomb loop w of bombs MOV comp bptr use comp as bomb pointer bptr DAT 0 this will be comp when exec split MOV bomb lt bptr bomb away count DJN split 0 JMN scan scan fall thru when self obliterated bomb SPL 0 and clear the core MOV 2 lt 1 incr DAT IVAL IVALAdaptierungen fur die Evolutionsforschung BearbeitenTierra ist eine Adaptierung von Core War die von Thomas S Ray geschrieben wurde einem fruhen Mitglied der ICWS und wird in der Modellierung lebender Systeme verwendet Avida ist ein weiterer Abkommling von Core War Es basiert auf Tierra und abstrahiert Evolutionsprozesse noch weiter Es wurde von Christoph Adami Charles Ofria und Titus Brown entwickelt und wird in der Evolutionsforschung verwendet Weblinks BearbeitenCore War auf SourceForge Deutsches Handbuch von Sascha Zapf The Beginner s Guide to Redcode Einfuhrung in Redcode fur Programmierer und Nichtprogrammierer von Ilmari Karonen englisch KOTH org englisch King of the Hill Core War Wettkampfe Informationen und Software A R E S Komfortabler Core War Simulator Debugger fur Windows The Core War FAQ englisch corewar info englisch Hier findet man umfangreiche Informationen und Links rund um Core War FatalC englisch corewar co uk englisch Abgerufen von https de wikipedia org w index php title Core War amp oldid 227385306