Snake Protokoll
Das Protokoll findet zwischen dem Server und dem Spieler statt.
Verbindungsaufbau und Aushandeln des Spiels
Der Spieler kann als erstes folgende Anfragen stellen:
Öffentliche Spiele?
Spieler sendet
GAMES?
Server antwortet z.B.:
GAMES 2 4 2 100 60 funny game 2 1 100 100 tete a tete
Die erste Zeile nach “GAMES” enthält die Anzahl verfügbarer Spiele (kann 0 sein!). Danach folgen entsprechend viele Zeilen mit
Anzahl Spieler total, Anzahl fehlende Spieler, Breite, Höhe, Name
Neues Spiel
Spieler sendet z.B.
NEWGAME public einsame insel 4 100 60 .....
Die zweite Zeile ist entweder “public ” oder “private ”. Die dritte Zeile enthält den Namen dieses Spiels. Die vierte Zeile enthält die Anzahl Spieler, die Breite und die Höhe des Spielfeldes. Danach folgt die Spezifikation des Spielfeldes (siehe unten).
Der Server antwortet mit einer Zeile “OK” oder mit zwei Zeilen “ERROR” plus eine Fehlermeldung. Z.B.
ERROR Spielfeld zu gross.
Mitspielen
Der Spieler sendet “join ” gefolgt vom Name des Spiels.
JOIN einsame insel
Der Server antwortet mit zwei Zeilen, entweder
OK Please wait
oder mit einer Fehlermeldung, z.B.
ERROR Das Spiel existiert nicht oder ist schon im Gange.
Spielstart
Der Server sendet eine Zeile “START”, gefolgt von einer Zeile mit Anzahl Spielern, Breite und Höhe des Spielfeldes, gefolgt vom Spielfeld.
START 4 100 60 ....
Der Spieler antwortet mit dem ersten Spielzug.
Spielfeld
Ein Spielfeld der Breite $x$ und Höhe $y$ wird in $y$ Zeilen der Länge $x$ (plus ein Zeilenumbruch) gesendet. Folgende Buchstaben sind möglich:
- # Hashtag: Mauer. Dieses Spielfeld kann nicht betreten werden.
- . Punkt: freies Feld.
- 0 etc. Schlange (0: eigene Schlange, 1,2. etc. Gegner)
- A Apfel
Alle Felder am Rand müssen Mauern '#' sein. Die Startfelder werden mit 1,2,etc. markiert.
Spielablauf
Spielzug
Die Spieler, die noch am Leben sind, senden Ihren Spielzug, z.B.
MOVE up
wobei nach “MOVE ” eines der vier Wörter “right”, “down”, “left” und “up” stehen muss.
Antwort des Servers
Der Server sendet zwei Zeilen, wobei die erste entweder “ALIVE” oder “DEAD” ist, gefolgt von der aktuellen Punktzahl in der zweiten Zeile. Z.B.
ALIVE 4209
Ist die Schlange gestorben, steht in einer dritten Zeile noch zusätzlich, warum.
Update des Spielfeldes
Spieler, die noch am Leben sind, erhalten z.B. folgende Zeilen:
UPDATE 3 30 42 0 25 41 . 88 21 A
Die erste Zeile enthält die Anzahl updates (hier 3). Danach folgen zwei Zahlen mit den Koordinaten (0 bis n-1), gefolgt von einem Buchstaben, der den neuen Inhalt an der entsprechenden Position darstellt.