ffprog:ffprogjava2016:projekt:protokoll

Das Protokoll findet zwischen dem Server und dem Spieler statt.

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.

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.

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.

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.

  • ffprog/ffprogjava2016/projekt/protokoll.txt
  • Last modified: 2016/10/28 15:56
  • by Ivo Blöchliger