2. Ameisenvolk

Dein Programm steuert die Ameisen mit Hilfe von Nachrichten über einen Socket.

Ablauf des Programms

Initialisierung

Beim Start des Programms registriert sich dein Programm beim Discovery-Service.

Als Antwort sendet der Discovery-Service OK oder ERROR. Bei ERROR muss das Programm abbrechen.

Spielrunde

Request

Das Programm öffnet einen Socket unter dem oben definierten Port. Auf diesem Socket wartet das Programm auf Nachrichten. Für jede Spielrunde erhält das Programm eine Nachricht mit “action”: “round” Diese Nachricht enthält neben der Action:

Pro Ameise enthält die Nachricht die Angaben:

Angenommen die Weltkarte sieht aktuell so aus:

Dann erhält der grüne Spieler diese Nachricht:

{
  "action": "round",
  "count": 2,
  "ants": [
    {
      "xcoord": 0,
      "ycoord": -1,
      "food": 1,
      "area": [
        "water", "empty", "empty", "empty", "empty",
        "water", "empty", "home", "empty", "friend",
        "water", "empty", "friend", "empty", "empty",
        "water", "empty", "empty", "empty", "food",
        "water", "empty", "empty", "empty", "empty"
      ]
    },
    {
      "xcoord": 2,
      "ycoord": 0,
      "food": 0,
      "area": [
        "water", "water", "water", "water", "water",
        "empty", "empty", "empty", "empty", "empty",
        "home", "empty", "friend", "empty", "empty",
        "friend", "empty", "empty", "empty", "empty",
        "empty", "empty", "food", "empty", "empty"
      ]
    }
  ]
}

Response

Das Programm antwortet mit den Aktionen der einzelnen Ameisen. Die Reihenfolge ist dabei die gleiche wie in der Nachricht.

[
  "N",
  "S"
]

Hier würde die linke Ameise nach Norden in den Ameisenhügel laufen. Die rechte Ameise läuft nach Süden in Richtung der Nahrung.

Spielende

Erhält das Programm eine Nachricht mit

so wird der Socket geschlossen und das Programm beendet.