Skip to content
Olaf Gladis edited this page Nov 30, 2014 · 25 revisions

all messages must be encoded with msgpack.

Connect

{
 "type": "connect",
 "username": "<username>",
 "password": "<geheim>",
 "async": False,
}

username ist ein beliebiger UTF-8-String mit bis zu 32 Zeichen. Die Antwort ist wie bei whoami. Andere Befehle können erst nach einem Connect geschickt werden.

password ist ein beliebiger UTF-8-String mit bis zu 32 Zeichen. Wenn man sich neu verbindet, kann die Verbindung nur dann übernommen werden, wenn man das selbe password mit angibt.

async ist ein boolean (default False). Wenn auf True gesetzt bekommt man asynchrone Informationen. Wie z.B. Aktionsbefehle aller Spieler.

Move

{
 "type": "move",
 "direction": "w",
 "distance": 1
}

direction kann "w", "a", "s", oder "d" (klein geschrieben!) sein.

distance ist per default 1, gibt die anzahl der Blöcke an die zurückgelegt werden sollen.

Whoami

{
 "type": "whoami",
}

Antwort

("WHOAMI", [color, id, self._top, self._left])

color ist ein Triple von Ganzzahlen von 0 - 255. RGB

id ist die Startposition

Map

{
 "type": "map",
}

Antwort

("MAP", "ggWg...\ngWM...")

Die Map wird als string übertragen, jeder Block ist wird als ein Zeichen dargestellt. Die Zeilen sind mit newlines begrenzt.

Bomb

{
 "type": "bomb",
 "fuse_time": 5
}

fuse_time ist per default 5, gibt die Anzahl an Sekunden an, bis die Bombe explodieren soll.

What Bombs

{
    "type": "what_bombs"
}

Antwort

("WHAT_BOMBS", [
    (b.position_int, b.update_timer, b.state,) for b in self.map.items if isinstance(b, Bomb)
])

What Foes

{
    "type": "what_foes"
}

Antwort

("WHAT_FOES", [
        (p.position_int, p.direction, p.id, p.name) for p in self.map.players
])

Vorschläge

points: aktueller Spielstand

{
 "type": "points"
}

Antwort

("OK", ("player1":10, "hamster":11, "lol":99))

Clone this wiki locally