Sämtliche Kommunikation erfolgt über die Standardein- bzw. -ausgabe. Hierbei wird jedes Datum einzeln in einer Zeile übermittelt.
Zunächst erhalten beide Programme die Ausgangssituation. Diese können Sie in eine interne Darstellung umwandeln und ggf. bereits einige statische Berechnungen auf diesen durchführen. Hierbei wird zunächst die Größe des Spielfelds übertragen. Alle Objekte auf dem Spielfeld werden dann über ihre Koordinaten kodiert (die Position (1,1) entspricht der linken oberen Ecke des Spielfelds). Bei allen zu übertragenden Koordinaten wird zuerst die x- und dann die y-Komponente übertragen.
Als nächstes wird die Lochposition als x- und y-Koordinate übermittelt.
Nun wird die maximale Anzahl möglicher Züge übertragen. Die Anzahl bezieht sich auf die Züge eines Spielers. Hat nach dieser Anzahl von Zügen kein Spieler alle seine Würmer ins Loch befördert endet die Partie und der Spieler mit den meisten verbleibenden Würmern hat verloren.
Als weitere Objekte werden zunächst die Hindernisse, die eigenen Würmer, dann die gegnerischen Würmer und abschließend, eine Mittelung, ob das Programm beginnt, oder nicht. Die Übertragung der weiteren Objekte erfolgt genau in dieser Reihenfolge. Die einzelnen Blöcke von Koordinaten werden durch Schlüsselwörter voneinander getrennt. Die Würmerpositionen werden durch die drei Positionen von Kopf, Mitte und Schwanz übertragen. Die Reihenfolge, in der die Würmer übertragen werden, bestimmt gleichzeitig die Nummer, über die sie benannt werden (bei eins beginnend). Diese Nummer bleibt für einen kompletten Spielablauf fest.
Hier die Eingabe der Anfangssituation für den Spieler mit den roten Würmern aus dem Beispiel von oben:
| 12 |
|
| 13 |
|
7 |
|
4 |
|
200 |
|
Hindernisse |
|
4 |
|
2 |
|
5 |
|
2 |
|
9 |
|
2 |
|
9 |
|
3 |
|
... |
|
Eigene Wuermer |
|
2 |
|
11 |
|
2 |
|
12 |
|
2 |
|
13 |
|
4 |
|
11 |
|
4 |
|
12 |
|
4 |
|
13 |
|
... |
|
Gegnerische Wuermer |
|
3 |
|
11 |
|
3 |
|
12 |
|
3 |
|
13 |
|
5 |
|
11 |
|
5 |
|
12 |
|
5 |
|
13 |
|
... |
|
Erster |
|
Der Spieler, welcher das Schlüssselwort 'Erster' erhalten hat, beginnt mit der Berechnung seines Zugs und gibt seinen ersten Zug dann aus. Der Spieler, welcher das Schlüssselwort 'Zweiter' erhalten hat, muß eine Eingabe erwarten, in der er den Zug seines Gegners erwartet.
Die Programme berechnen nun abwechselnd ihre Züge und geben Sie aus. Die Ausgabe des einen Spielers ist gleichzeitig die Eingabe des anderen und umgekehrt. Ein Zug setzt sich immer durch die Angabe der Wurmnummer des ziehenden Wurms und einer Himmelsrichtung (N,O,S oder W) zusammen. Das Feld welches in der entsprechenden Richtung vom Kopf des gewählten Wurms liegt muß natürlich frei sein.
Im Beispiel wären folgende Züge möglich:
Ausgabe erster Spieler (Eingabe zweiter Spieler):
| 2 |
|
N |
|
| 1 |
|
N |
|
| 2 |
|
O |
|
Kann ein Spieler in einer Situation keinen Zug machen, gibt er anstelle
eines Zugs das Schlüsselwort 'Kann nicht' aus.
Dies ist wie gewöhnlich auch die Eingabe für den anderen Spieler.
Hat ein Spieler gewonnen, so terminiert sein Programm nach Ausgabe des
letzten Zugs.
Sein Gegner (der Verlierer) erhält das Schlüsselwort 'Ende', worauf
sein Programm ebenfalls enden muß.
Geben beide Programme nacheinander die Meldung 'Kann nicht' aus endet
das Spiel unentschieden.
Sie erhalten beide die Meldung 'Ende'.