react.png

Die kritische Masse

out of the box: Chain Reaction

01.02.2003
Blobs sind völlig harmlose Objekte. Sie sitzen auf quadratischen Feldern, glänzen schön bunt und explodieren ab und zu. Letzteres tun sie aber nur, wenn sie die kritische Masse erreichen.

out of the box

Es gibt tausende Tools und Utilities für Linux. "out of the box" pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.

Ein Programm namens "Kettenreaktion"? Was sich zunächst nach Experimenten mit einem virtuellen Atomkraftwerk anhört, ist tatsächlich ein Strategiespiel für zwei bis sechs Spieler. Bei Chain Reaction von Lee Haywood verteilt jeder Spieler Blobs seiner Farbe auf freie Felder oder erhöht die Masse der eigenen Kugelverschmelzungen. Erreicht eine solche Ansammlung die Masse, die auf ihren Nachbarfeldern zusammengerechnet herumliegt, explodiert sie und verteilt sich auf die umliegenden Felder. Liegen vor der Explosion bereits andersfarbige Blobs auf den Nachbarfeldern, so übernehmen diese die Farbe des Explosionsopfers.

Erreicht einer der umliegenden Blobs durch die Explosion seinerseits die kritische Masse, explodiert auch er. Daraus können sich sehr wirksame Kettenreaktionen ergeben. Das Spiel endet, wenn nur noch Blobs einer Farbe übrig bleiben. Es gilt also, durch geschicktes Plazieren der eigenen Blobs möglichst viele gegnerische Blobs umzufärben.

Marke Eigenbau

Da es Chain Reaction nicht als fertiges Binärpaket für eine Distribution gibt, müssen Sie selbst kompilieren. Dazu benötigen Sie diverse Bibliotheken – insbesondere SDL – sowie die zugehörigen Development-Pakete mit den Header-Dateien, als da wären

  • libsdl und libsdl-dev,
  • libsdl-image und libsdl-image-dev sowie
  • libsdl-mixer und libsdl-mixer-dev

Die Paketnamen können je nach verwendeter Distribution ein wenig variieren. Benutzen Sie am besten die Paketsuche im Installationstool Ihrer Distribution!

Das Chain-Reaction-Quellarchiv finden Sie auf http://www.deth.dsl.pipex.com/reaction.html oder auf der Heft-CD. Jene enthält zudem das Skript rcinst.sh, das die einzelnen Installationsschritte automatisiert. Kopieren Sie diese Datei zusammen mit reaction-1.28.src.tgz in ein Verzeichnis, und starten Sie die Installation mit dem Kommando

sh rcinst.sh

Wenn alles gut geht, finden Sie die neue Software nun auf die Verzeichnisse /usr/local/bin und /usr/local/lib/reaction gebrauchsfertig verteilt.

Zwei oder mehr

Wird das Spiel mit dem Kommando reaction & aus einer Terminal-Emulation heraus gestartet, meldet es sich mit der Grundeinstellung für zwei Spieler. Wollen weitere Kombattanten teilnehmen, müssen Sie nur auf den jeweiligen Eintrag in der Punktliste rechts neben dem Spielfeld klicken.

Das Match beginnt, indem der erste Spieler einen Blob auf dem Spielfeld positioniert. In Abbildung 1 ist eine Partie mit zwei Spielern schon in vollem Gange. Der blaue Spieler ist am Zug und steht vor der Entscheidung, den Bereich des roten Spielers (links oben) anzugreifen oder seinen eigenen Bereich (rechts unten) auszubauen. Da dort von Rot keine akute Bedrohung ausgeht, wird Blau wahrscheinlich die erste Möglichkeit wählen.

Abbildung 1: Chain Reaction in Action

In der Falle

Selbst wenn man durch eine Explosion direkte Nachbarfelder nicht auf die kritische Masse bringen kann, klappt es über Umwege oft doch noch. Mit der passenden räumlichen Anordnung der eigenen Blobs lassen sich andere Felder so einkreisen, dass ihre Masse von mehreren Seiten erhöht wird und sich die Kette fortsetzt. Links unten in Abbildung 2 hat der rote Spieler die magentafarbenen Blobs eingekreist. Allerdings ist Magenta an der Reihe und kann so die Aktion vereiteln. Bevor Rot wieder dran ist, kann ihm auch Blau in der linken oberen Ecke noch gefährlich werden.

Abbildung 2: Hat Rot Magenta in der Falle?

Da im Spielverlauf die auf den Feldern verteilte Masse immer weiter zunimmt, werden die Kettenreaktionen gegen Ende immer heftiger. So können sich kurz vor Schluss die Mehrheitsverhältnisse auf dem Spielfeld sehr schnell ändern und vermeintliche Außenseiter durch eine gut gesetzte Explosion die Partie sogar gewinnen.

Grundsätzlich sollten Sie bei Chain Reaction immer aufpassen, dass Sie im eigenen "Blob-Gehege" nicht zu große Lücken für die Gegenspieler lassen. Auf Eckfeldern herrscht durch nur zwei Nachbarn erhöhte Explosionsgefahr – besetzt ein Gegner dieses Feld (etwa rechts unten in Abbildung 2), muss schnell gehandelt werden, da schon im nächsten Zug die kritische Masse erreicht ist.

Terraforming

Wem die Quadratform des Spielfelds auf Dauer zu langweilig ist, der kann sich mit dem eingebauten Spielfeldeditor eigene "Welten" erschaffen. Nutzen Sie vor dem Spielbeginn einfach die rechte Maustaste, um einzelne Felder des Quadrats wegzunehmen oder hinzuzufügen. Isolierte Felder sind nicht erlaubt, da sie nicht durch Nachbarn erreicht und gegebenenfalls umgefärbt werden können.

Falls Ihnen die Spielfeldkreation gefällt, speichern Sie diese mit dem Save-Button am unteren Rand des Fensters in die Datei saved-game im aktuellen Verzeichnis. Diese Funktion speichert übrigens nicht nur das Spielfeld, sondern auch die aktuelle Belegung der Felder und sämtliche bisherigen Züge. Mit den Buttons Undo und Redo lässt sich so die Zugfolge beliebig nachstellen.

Abbildung 3: Der Spielfeldeditor bringt Tempo ins Spiel

Abbildung 3 zeigt ein editiertes Spielfeld. In den Ecken haben manche Felder nur jeweils ein einziges Nachbarfeld. Blobs, die auf diese Felder gesetzt werden, explodieren sofort und geben die Masse an den Nachbarn ab. Diese Felder bleiben also immer leer und bilden ein ständiges Angriffspotenzial. In dieser Variante ändert sich die Taktik: Man kann sich nicht auf die Ecken konzentrieren, da sie sich ohnehin nicht verteidigen lassen …

Glossar

Bibliotheken

Eine "Library" enthält eine Sammlung nützlicher C-Funktionen für bestimmte Zwecke. So gibt es etwa die libm, die mathematische Funktionen bereitstellt, oder die libXt, die Funktionen zur Programmierung des X-Fenstersystems enthält. Oft werden Bibliotheken von mehreren Programmen gemeinsam ("shared") genutzt.

SDL

Mit der "Simple Directmedia Layer"-Bibliothek lassen sich Grafik- und Sound-Ausgaben unabhängig von Hardware oder Betriebssystem realisieren.

Header-Dateien

Header-Dateien (auch "Include-Dateien" genannt) listen die in einer Bibliothek verfügbaren Funktionen nebst Parametern auf. Der C-Compiler braucht diese Information beim Übersetzen eines Programms. Bei den gängigen Distributionen trägt ein Header-Paket zu einer Bibliothek üblicherweise den Zusatz dev oder devel im Namen.

Terminal-Emulation

Befehle an die Großrechner vergangener Tage setzten die Benutzer von separaten Bildschirmarbeitsplätzen, sogenannten (Text-)Terminals, ab. Programme, die ein solches Gerät (angepasst an heutige Rechner und Betriebssysteme) emulieren ("nachahmen"), haben diesen Namen geerbt. Unter Linux versteht man unter Terminal-Emulation die Darstellung auf den virtuellen Konsolen im VGA-Textmodus oder separate Software für das X-Window-System, die (wie xterm, konsole oder gnome-terminal) eine Kommandozeile bereitstellt.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare