Der Welt-Service erzeugt die Spielwelt und liefert Informationen über die Umwelt. Die Kommunikation erfolgt über einen Socket.
Beim Start des Programms registriert sich dein Programm beim Discovery-Service.
action: register
type: world
ip:
Die IP-Adresse auf der dein Programm Nachrichten empfangen wird.port:
Der Port über den dein Programm Nachrichten empfangen wird.
Als Antwort sendet der Discovery-Service OK
oder ERROR
.
Bei ERROR
muss das Programm abbrechen.
Das Programm erzeugt ein neues Objekt der Klasse “Map”.
Das Programm öffnet einen Socket unter der oben registrierten Adresse/Port. Auf diesem Socket wartet das Programm auf Nachrichten.
Das Programm erzeugt eine neue Spielwelt und platziert die Ameisenhügel auf der Karte.
Ein JSON-Objekt mit den Attributen:
action: “new”
count
: Die Anzahl der Ameisenvölker in der Welt.Ein JSON-Array mit den Koordinaten aller Ameisenhügel.
[ {"xcoord": n, "ycoord": m}, {"xcoord": n, "ycoord": m}, ... ]
Das Programm liefert die Umgebung einer Ameise, abhängig von der Sichtweite.
Ein JSON-Objekt mit den Attributen:
action: “area”
xcoord
: Die X-Koordinate einer Ameise.ycoord
: Die Y-Koordinate einer Ameise.range
: Die Sichtweite einer Ameise.Ein JSON-Array mit den Zuständen der Felder. Die Reihenfolge der Felder ist immer von oben links nach unten rechts.
Dieses Beispiel zeigt die Umgebung einer Ameise mit einer Sichtweite 2. Die Ziffern entsprechen der Reihenfolge in der Response.
Das Programm liefert die vollständige Karte. Nur autorisierte Services dürfen diese Aktion ausführen.
Ein JSON-Objekt mit den Attributen:
action: “map”
token
: Ein verschlüsseltes Authentifikationstoken.Ein JSON-Array mit den Angaben zur Welt.
xsize
: Breite der Weltysize
: Höhe der Weltfields
: Zweidimensionales Array mit allen Feldern der Welt.
Erhält das Programm eine Nachricht mit “action”: “quit”
, so wird das Programm beendet:
OK
über den Socket.