Krieg der Kerne

 

Zwei Gegner stehen sich virtuell und real gegenüber

 

Wer kennt es nicht, das alte Computerspiel wo in einem Ringspeicher zwei Programme gegeneinander kämpfen. Hier wird die Sichtweise einmal umgedreht und der Spieler ist Bestandteil seines Programms.

 

Fauchend verließ der Magnetzug die dunkle Röhre und bremste im Bereich des Bahnhofes ab. Geräuschlos öffneten sich die Türen. Mit der letzten Zahleinheit zog er sich einen Fahrschein und ließ sich auf einem der noch freien Plätze nieder. Es war noch sehr früh und der morgendliche Berufsverkehr hatte noch nicht eingesetzt. Während der Magnetzug erschütterungsfrei den Bahnhof verließ, hielt er seine letzte Hoffnung in der Hand.

Eine rote Plastikkarte, auf deren einer Seite die Aufschrift TECOM in hellem Blau zu lesen war. Auf der Rückseite befand sich ein Magnetspeicher. Eigentlich hatte er vorgehabt, sie nicht mehr zu benutzen. Aber sie war jetzt seine letzte Chance wieder zu Zahleinheiten zu kommen. Ohne Zahleinheiten war es unmöglich, in MAKAR auch nur einen Tag zu überleben. Jede Dienstleistung musste hier bezahlt werden. Umsonst gab es hier nichts. Da er jetzt pleite war, er hatte vor kurzem seinen Job verloren, blieb ihm nur noch ein Sieg im Spielcomputer von TECOM, um wieder zu Zahleinheiten zu kommen.

An eine Niederlage wollte er allerdings nicht denken. Dann würde er nämlich dreißig Tage lang, jeden Tag, als TECOM-Spieler eingesetzt werden. Nach der letzten Statistik hatten TECOM-Spieler eine Überlebenschance von nur 5%. Keine berauschende Aussicht. Er durfte ganz einfach nicht verlieren. Alles, nur das nicht.

Durch die Fenster fiel jetzt wieder Licht aus einer Bahnhofsbeleuchtung. Er war am Ziel. Als er aus dem Aufzug trat und damit den Bahnhofsbereich verlassen hatte, fiel sein Blick auf das imposante Gebäude von TECOM. TECOM war der Begriff für das "Spiel" überhaupt.

Eingeführt wurde es vor etwa 90 Jahren um die Langeweile zu beseitigen, die die Menschheit ergriffen hatte, als es kaum noch Arbeitsplätze gab. Sie gingen verloren durch die Technisierung und die Bevölkerungsexplosion des 2.Jahrtausends. Irgendwann bemerkten die Politiker das die Bevölkerung eine Betätigung brauchten. Das "Spiel" wurde eingeführt. Es war ein Computerspiel mit realitätsnaher Simulation. Es bot genau das, was den Menschen fehlte. Ein Ausweg aus der Langeweile. Das Spiel war nicht ungefährlich. Die Simulation war so realitätsnah, das man darin auch das Leben verlieren konnte. Aber das wurde von den Massen akzeptiert. Das Spiel war einem Computerspiel der 90er Jahre des 2.Jahrtausends nachempfunden worden. Es trug auch heute noch den gleichen Namen wie damals. "Krieg der Kerne".

Zwei Spieler entwarfen jeweils ein kurzes Computerprogramm, die dann beide in einen Ringspeicher ohne Anfang und Ende transferiert wurden. Dort kamen sie nun abwechselnd, Programmschritt für Programmschritt, an die Reihe. Ziel von beiden Programmen war es, das jeweils andere Lahmzulegen. Die dazu notwendige Programmiersprache nannte sich REDCODE.
Diese Programmiersprache hatte nur zehn verschieden Befehle, die man einsetzen konnte. Sowie nur zwei Regeln.

1: Die Anweisungen zweier gegnerischer Programme müssen abwechselnd ausgeführt werden.
2. Ein Programm, und damit der Spieler, hat verloren, wenn es nicht mehr lauffähig ist.

Er fuhr aus seinen Gedankengängen auf als sich die großen Türen vom TECOM-Gebäude vor ihm öffneten. Von der großen Halle dahinter, führten zwei Treppen eine Etage höher. Er nahm die für die Spieler. Die andere war für die Zuschauer. Die Treppe endete vor einer Vielzahl von kleinen Kabinen. Er ging in die Nächstbeste freie und setzte sich vor der kleinen Computeranlage in einen bequemen Sessel. Er schob die Plastikkarte in den Computer, der sich dadurch aktivierte. Auf dem Bildschirm vor ihm tauchte nun das Programm-Menü auf.

Krieg der Kerne - Programm-Menü
Ringspeicher = 500 Zellen
Spielfarbe = Blau
Befehle = DAT   B
  = MOV A B
  = ADD A B
  = SUB A B
  = JMP A  
  = JMZ A B
  = JMN A B
  = DJN A B
  = SPL A  
Verknüpfungen = (+), (-), (#), (@), Marke
 
Programmerstellungs-Modus:
 
Ready>

Dies waren die möglichen Befehle, die er nun verwenden konnte. Er fing an, sein Programm zu erstellen. Es durfte nicht zu lang werden, denn je länger das Programm war, desto besser konnte der Gegner es besiegen. Er sah sich sein kleines Programm noch einmal gut an, bevor er es endgültig in den Spielcomputer gab.

  MOV #0 -1
Start SPL -1
  ADD 16 @2
  MOV #0 @1
  DAT 30
  SPL -4 
  MOV 0 1

Sein Programm war kurz und einfach aufgebaut. Der erste Befehl würde einen gegnerischen KNIRPS löschen und mit seinem zweiten Befehl startete das Programm. Der mittlere Teil verschoss dann eine DATENBOMBE nach vorne, die vielleicht im gegnerischen Programm einzuschlagen würde. Der vorletzte Befehl würde dann einen erneuten Programmdurchlauf starten. Mit dem letzten Befehl erzeugte es dann selbst einen KNIRPS.

Ein KNIRPS war das kürzeste Programm, das man in dieser Programmsprache erzeugen konnte. Der Befehl "MOV 0 1" bedeutete nichts weiter, als das sich diese Programmzeile selbst um eine Speicherzelle nach vorne kopieren würde. Da die REDCODE-Befehle nacheinander abgearbeitet wurden, würde sich dieser Befehl immer um eine Speicherzelle weiter nach vorne kopieren. Nur eine KNIRPSFALLE konnte ihn dann noch stoppen, indem sie ihn einfach mit einer NULL überschrieb. Er hoffte, dass er die wahrscheinlich vorhandene gegnerische KNIRPSFALLE mit seiner DATENBOMBE löschen konnte, damit dann sein eigener KNIRPS das gegnerische Programm löschen konnte.

Aber viel wahrscheinlicher war es, das er mittels seiner DATENBOMBE das gegnerische Programm zum Absturz bringen konnte.

Von oben senkte sich jetzt die Simulationshaube herab. Er setzte sie auf. Sofort fand er sich in der Simulation des Spiels wieder. Um ihn herum bildete sich gerade die KATZE. Sie stellte die Programm-Marke dar, in der er sich selbst innerhalb der Simulation aufhalten würde. Zwischen ihren zwei zylinderischen Schienen, die frei in der Luft schwebten, entstanden gerade die einzelnen Speicherzellen. Vom inneren der KATZE gesehen erstreckten sie sich unbegrenzt in beide Richtungen. Allerdings gab es nur 500 Speicherzellen, die einen großen Kreis ohne Anfang und Ende bildeten. Ein bläuliches leuchten färbte die KATZE und die sechs Speicherzellen vor ihr Blau. Dies war seine Spielfarbe. Sein Gegner hatte Rot als Spielfarbe. Nach vorne und hinten gesehen konnte er etwa 100 Speicherzellen überblicken. Alle waren sie Grau. Die neutrale Farbe. Von seinem Gegner war nichts zu sehen. Rot begann das Spiel mit seinem ersten Zug. Angespannt sah er nach vorne und hinten um zu sehen, ob sich irgendwo eine rote Speicherzelle bildete. Es war nichts zu sehen.

Jetzt war er dran. Er holte sich den ersten Befehl in seinen Bildschirm vor ihm.

Spielerfarbe = Blau
1. Zug MOV #0 -1 Zelle 1
Anweisungen:

Dieser Befehl schrieb eine NULL in die Speicherzelle, die sich gleich hinter ihm befand. Nach seiner Definition war es Speicherzelle 499. Sein Programm definierte er von Speicherzelle 1 ausgehend bis zu Speicherzelle 7.

Die Speicherzelle färbte sich jetzt blau. Gleichzeitig fuhr die KATZE jetzt um einen Programmschritt nach vorne zu dem zweiten Befehl. Nachdem sein Gegner seinen zweiten Zug ausgeführt hatte, holte er den nächsten Befehl hoch.

Spielerfarbe = Blau
2. Zug SPL -1 Zelle 2
Anweisungen: Marke 0 Zelle 3
  Marke 1 Zelle 1

Mit diesem Befehl teilte er sein Programm in zwei Teile. Zum einen würde es zum ersten Befehl zurückspringen, zum zweiten, zum folgenden Befehl gehen. Die Marke 0 bezeichnete dabei die KATZE. Die Marke 1 war eine Scheibe, die sich unter der KATZE befand. Bei jedem folgendem Befehl konnte er nun zwischen zwei verschiedenen Befehlen wählen. Allerdings würde der Spielcomputer nur immer einen Zug akzeptieren. Er gab den Zug an den Spielcomputer weiter.

Danach sah er sich um, ob sein Gegner ihm schon näher gerückt war. Das war noch nicht der Fall. Hinter seiner KATZE tauchte dafür die Marke 1 auf und schwebte als blaue Scheibe über Programmzelle 1. Währenddessen fuhr die KATZE zur Programmzelle 3 weiter, wo sie anhielt. Nach der Aufforderung des Spielcomputers holte er den nächsten Befehl hoch.

Spielerfarbe = Blau
3. Zug ADD 16 @2 Zelle 3
Anweisungen: Marke 0 Zelle 4
  Marke 1 Zelle 1

Mittels diesem Addierungsbefehl erhöhte er den Wert in Programmzelle 5 auf jetzt 46. Laut seiner Anweisung fuhr die KATZE nun zur Programmzelle 4 weiter, wo er nervös auf den gegnerischen Zug wartete. Aber auch jetzt war von ihm nichts zu sehen.

Spielerfarbe = Blau
4. Zug MOV #0 @1 Zelle 4
Anweisungen: Marke 0 Zelle 5
  Marke 1 Zelle 1

Über seiner KATZE bildete sich nun eine blau schimmernde Scheibe. Und kurz darauf bewegte sie sich langsam weiter nach vorne. Über Speicherzelle 50 senkte sie sich nach unten und überschrieb die neutrale Speicherzelle mit dem Befehl MOV 0 1. Das war die DATENBOMBE, die laut DAT-Anweisung in Programmzelle 5, sich um 46 Speicherzellen weiter nach vorne bewegt hatte.

Lautlos fuhr die KATZE nach Programmzelle 6 weiter. Nun war wieder der Gegner dran. Keine Speicherzelle veränderte ihre Farbe. Und wieder war er am Zug.

Spielerfarbe = Blau
5. Zug DAT 46
  SPL -4 Zelle 6
Anweisungen: Marke 0 Zelle 2
  Marke 1 Zelle 1
  Marke 2 Zelle 7

Dieser zweite Teilungsbefehl würde das Programm wieder neu starten und gleichzeitig einen KNIRPS zum Laufen bringen. Während die KATZE zu Programmzelle 2 zurückfuhr, löste sich die Marke 2 und schwebte zur Programmzelle 7. Jetzt war wieder sein Gegner dran.

Spielerfarbe = Blau
6. Zug SPL -1 Zelle 2
Anweisungen: Marke 0 Zelle 2
  Marke 1 Zelle 1
  Marke 2 Zelle 7

Zum ersten Mal wurde nicht der Befehl ausgeführt, über dem die KATZE stand, sondern der mit der Marke 2. Damit lief jetzt der KNIRPS. Er konnte sehen, wie sich die Speicherzelle 8 in eine bläuliche Farbe veränderte. Die Marke 2 bewegte sich ebenfalls weiter.

Spielerfarbe = Blau
7. Zug SPL -1 Zelle 2
Anweisungen: Marke 0 Zelle 3
  Marke 1 Zelle 1
  Marke 2 Zelle 8

Damit war dieser Befehl abgearbeitet. Die KATZE fuhr zu Programmzelle 3 weiter. Und jetzt musste er wieder warten, bis sein Gegner seinen Zug ausgeführt hatte. Dabei sah er immer wieder nach vorne und hinten, ob sich da nicht irgendwo eine rote Speicherzelle bildete. Und tatsächlich sah er jetzt zum ersten Mal einen roten Schimmer in der Ferne. Die rote Speicherzelle war allerdings noch weit entfernt von ihm. Aber das sollte nichts heißen. Es war eine gegnerische DATENBOMBE die sich ihm näherte. Das nächste Mal konnte sie schon sehr viel näher einschlagen. Beim nächsten auftauchen, würde er wissen, in welchen Abständen sie einschlagen würde.

Spielerfarbe = Blau
12. Zug ADD 16 @2 Zelle 3
Anweisungen: Marke 0 Zelle 4
  Marke 1 Zelle 1
  Marke 2 Zelle 8
  Marke 3 Zelle 7
Analyse DATENBOMBE  Zelle 97
  Sprungweite Unbekannt

Nach diesem Zug wartete er auf den gegnerischen. Vor seinem Programm leuchteten inzwischen zwei seiner eigenen DATENBOMBEN. Die Sprungweite seiner eigenen DATENBOMBEN lag bei 16 Speicherzellen. Gestartet war er dabei in der Speicherzelle 50. Für ihn war es jetzt wichtig zu wissen, welche Sprungweite die gegnerische DATENBOMBE hatte. Danach konnte er vielleicht berechnen, wo sich das gegnerische Programm in etwa befand.

Spielerfarbe = Blau
16. Zug ADD 16 @2 Zelle 3
Anweisungen: Marke 0 Zelle 4
  Marke 1 Zelle 1
  Marke 2 Zelle 8
  Marke 3 Zelle 7
Analyse DATENBOMBE  Zelle 97
  Sprungweite Unbekannt

Vor ihm leuchtete jetzt eine weitere gegnerische DATENBOMBE auf. Es sah so aus, als ob sie eine sehr kurze Sprungweite hatte. Das würde zwar ihre Annäherung verlangsamen, aber je kürzer ihre Sprungreichweite, desto größer war die Wahrscheinlichkeit, dass sie sein eigenes Programm treffen würde.

Spielerfarbe = Blau
17. Zug MOV #0 @1 Zelle 4
Anweisungen: Marke 0 Zelle 5
  Marke 1 Zelle 1
  Marke 2 Zelle 8
  Marke 3 Zelle 7
Analyse DATENBOMBE  Zelle 97 + 86
  Sprungweite 11 Speicherzellen

Jetzt hatte er die Daten, um zu berechnen, ob sein eigenes Programm in Gefahr war oder nicht. Er hatte Glück! Sein Programm war nicht in Gefahr. Die DATENBOMBE würde in Speicherzelle 9 und in Speicherzelle 497 einschlagen. Also nur 2 Speicherzellen vor und 3 Speicherzellen hinter seinem eigenen Programm.

Aus der Sprungweite und der Anzahl der bisherigen Züge konnte er in etwa den Ort des gegnerischen Programms berechnen. Es musste um Speicherzelle 130 herum liegen. Speicherzelle 130 würde aber auch von einer seiner eigenen DATENBOMBEN getroffen werden. Natürlich nur, wenn sein Gegner nicht auch, wie er selbst, seine erste DATENBOMBE mittels Vorabwert gestartet hatte.

Spielerfarbe = Blau
23. Zug SPL -1 Zelle 2
Anweisungen: Marke 0 Zelle 3
  Marke 1 Zelle 1
  Marke 2 Zelle 8
  Marke 3 Zelle 7
Analyse DATENBOMBE  Zelle 97 + 86 + 75 + 64
  Sprungweite 11 Speicherzellen

Die Sprungweite der gegnerischen DATENBOMBE war gleich geblieben. Mit seinem zweitnächsten Zug würde er wahrscheinlich das gegnerische Programm treffen und damit das Spiel gewinnen.

Spielerfarbe = Blau
25. Zug MOV #0 @1 Zelle 4
Anweisungen: Marke 0 Zelle 6
  Marke 1 Zelle 1
  Marke 2 Zelle 8
  Marke 3 Zelle 7
Analyse DATENBOMBE  Zelle 97 + 86 + 75 + 64 + 53 + 42
  Sprungweite 11 Speicherzellen

Jetzt würde er bald wissen, ob er das gegnerische Programm getroffen hatte oder nicht. Da der Spielcomputer ihm gerade die Anweisung gab, seinen nächsten Zug auszuführen, hatte er schon mal nicht den Programmteil getroffen, über dem sich die gegnerische KATZE aufhielt. Nun hieß es warten. Zumindest der TECOM-Spieler verlor in seinem heutigen Spiel immerhin nicht sein Leben!

Spielerfarbe = Blau
26. Zug DAT 130
  SPL -4 Zelle 6
Anweisungen: Marke 0 Zelle 2
  Marke 1 Zelle 1
  Marke 2 Zelle 8
  Marke 3 Zelle 7
Analyse DATENBOMBE  Zelle 97 + 86 + 75 + 64 + 53 + 42
  Sprungweite 11 Speicherzellen

Er hatte gesiegt! Gleich nach der Ausführung seines letzten Zuges ertönte ein Glockenton und die Simulation erlosch. Er fand sich in dem kleinen Raum wieder, wo sich jetzt die Simulationshaube von seinem Kopf löste und ein ansehnlicher Betrag auf seine Spielkarte transferiert wurde. Er nahm sie in Empfang und verließ das TECOM-Gebäude.

ENDE

Geschrieben von Andreas Blome