Dritter Programmierwettbewerb – Zu empfangene Befehle

Zu empfangene Befehle

Alles in spitzen Klammern sind Platzhalter. Die NUMMER ist dabei die ID eines Clients/Mitspielers und muss immer nicht negativ sein. In den meisten Fällen bezieht sie sich auf andere Mitspieler und sollte daher auch in der Liste der bekannten Spieler vorkommen oder ggf. die eigene ID bezeichnen.

Bei den Richtungen sind mögliche Werte: NORTH, NORTH_WEST, WEST, SOUTH_WEST, SOUTH, SOUTH_EAST, EAST, NORTH_EAST und zusätzlich NONE (nur bei Bewegungen).

Das erste Kommando, das der Server an einen Client sendet, ist immer die ID des Clients, der sich gerade angemeldet hat!

ID <NUMMER>
Setzt die eigene ID des Clients nach der Anmeldung, ohne die das Spiel nicht startet. Der Empfang muss vom Client mit ID_OKAY bzw. ID_NOT_OKAY bestätigt werden (siehe unten). Dies ist das einzige Kommando, das bestätigt werden muss.
Beispiel: ID 0

PING
Ping des Servers an den Client. Keine Reaktion erforderlich. Der Server pingt den Client von Zeit zu Zeit, also nicht erschrecken.
Beispiel: PING

CONNECTED <NUMMER>
Ein neuer Client/Mitspieler mit der folgenden NUMMER hat das Spiel betreten. Die NUMMER darf nicht die eigene ID sein.
Beispiel: CONNECTED 1

DISCONNECTED <NUMMER>
Der Client/Teilnehmer mit NUMMER hat das Spiel verlassen. Die NUMMER darf nicht die eigene ID sein.
Beispiel: DISCONNECTED 1

DISCONNECT
Der Client soll sich selbst beenden, da das Spiel vorbei ist.
Beispiel: DISCONNECT

SEE_PLAYER <X,Y> <VIEW> <NUMMER>
Zeigt an, dass man einen anderen Spieler sieht. X und Y sind die Position auf dem Spielfeld und dürfen nicht negativ sein. VIEW ist die Richtung, in die der Spieler schaut. VIEW darf nicht NONE sein. Die NUMMER darf nicht die eigene ID sein.
Beispiel: SEE_PLAYER 10,4 NORTH_WEST 1

SET <X,Y> <VIEW>
Setzt die eigenen Daten (Position und Blickrichtung) neu fest. Die Syntax ist identisch zu SEE. VIEW darf nicht NONE sein.
Beispiel: SET 10,4 NORTH_WEST

TOXIC <X,Y> <WERT>
Gibt den Giftigkeitsgrad eines Feldes (als Double-Wert) an. X und Y sind die Position auf dem Spielfeld und dürfen nicht negativ sein.
Beispiel: TOXIC 10,4 0.2

LIFE <WERT> <NUMMER>
Teilt dem Client die aktuelle Lebensenergie (als Double-Wert) eines Spielers nach der Bewegung mit. Achtung: Die NUMMER kann auch die eigene ID sein.
Beispiel: LIFE 95.6 0

TEAMCHANGE <TEAM> <NUMMER>
Der Spieler mit einer NUMMER hat in ein TEAM gewechselt. Es gibt nur die Teams BLUE und RED. Ein neuer Spieler beginnt immer mit BLUE. Achtung: Die NUMMER kann auch die eigene ID sein.
Beispiel: TEAMCHANGE RED 1

MAP <MAPNAME>
Eine neue Karte mit Dateiname MAPNAME soll geladen werden. Der Dateiendung muss .map sein. Die .toxic-Datei (siehe unten) ist dabei nicht bekannt.
Beispiel: MAP /tmp/board1.map

START <RUNDE>
Ein neuer Zug soll berechnet werden. Dies muss mit einer Aktion MOVE quittiert werden. Die Quittung muss innerhalb von 5 Sekunden kommen. Sollte die Quittung ausbleiben, bleibt der Spieler einfach nur stehen. RUNDE gibt die aktuelle Runde an.
Beispiel: START 10

vorherige Seite nächste Seite