Dritter Programmierwettbewerb – Code

Start des Servers

Der Server lässt sich im Verzeichnis engine über den Aufruf

$ ./engine -p 2 -m ../maps/board1.map

starten. Die Angabe nach -p steht für die Anzahl der Clients, auf die mindestens gewartet wird. Hinter -m steht die Karte, die geladen werden muss. (Es werden einige Beispielkarten mitgeliefert.)

Sobald genügend Clients verbunden sind, startet das Spiel.

Die Beispiel-KI

Die Beispiel-KI befindet sich im Ordner ai und wird ohne Angabe von Optionen über

$ ./ai

gestartet.

Grafische Oberfläche

Wer das Geschehen live verfolgen will, kann eine Oberfläche starten, die im Ordner gui liegt und über

$ ./gui

gestartet wird.

Über [Strg+S] bzw. „Datei -> Verbinde zu Server“ verbindet man die GUI mit dem aktuell laufenden Server (dieser muss zuvor natürlich gestartet werden).

Das Spielfeld zeigt alle Spieler (die blauen und roten Elemente), die grüne Farbe gibt je nach Intensität den Giftigkeitswert an. Die Spielstatistik an der Seite kann an jeden Rand des Fensters gezogen oder auch ganz abgeschaltet werden. Etwas durchsichtige Spieler haben das Spiel bereits verlassen und werden ignoriert.

Wichtig: Es ist nicht erlaubt, den Port, über den die GUI mit dem Server kommuniziert, für die eigene KI zu verwenden.

Die GUI ist nicht sonderlich performant; man sollte nicht mehr als 20 Spieler gleichzeitig auf einer Map laufen lassen.

Automatisches Startskript

Wer dem Treiben etwas hektischer zusehen will, kann auch das Startskript im Hauptordner nutzen:

$ ./start.sh maps/board1.map 20 1

Dies startet einen Server mit der Karte board1.map, der auf 20 Spieler wartet. Danach werden 20 KIs aus dem ai-Ordner gestartet. Die letzte Zahl (hier 1) gibt die Anzahl der Iterationen an und ist eher für Testfälle gedacht.

Codebenutzung

Der gesamte Code (Engine, KI, GUI) steht unter der GNU Lesser General Public License (LGPL) und kann damit für eigene Einsendungen benutzt werden. Wer den Quellcode direkt nutzt, ist dann an die LGPL gebunden, wer nur die kompilierten Bibliotheken nutzt, kann auch eine andere Lizenz auswählen.

Hinweis: Es ist möglich, dass sich der Quellcode im Laufe des Wettbewerbs noch leicht ändert, sodass ggf. diverse Klassen angepasst werden. Es wird aber versucht, die Schnittstellen nicht mehr zu verändern.

vorherige Seite nächste Seite