B) Kitten-Bot
Dein Exploding Kitten-Bot muss in der Lage sein, korrekt mit den Services zu kommunizieren. Ausserdem soll er seine Karten strategisch so ausspielen, dass er alle anderen Bots schlägt.
Start
Beim Start muss sich dein Bot beim Clowder-Service registrieren. Als Response erhält er einen Port. Öffne einen Socket mit diesem Port und höre dort auf die Nachrichten des Arena-Services.
Spielen
Immer wenn eine relevante Aktion im Spiel stattfindet, sendet der Arena-Service einen Request an deinen Bot. Er muss innerhalb einer Sekunde eine gültige Reponse an den Server senden. Andernfalls scheidet dein Bot aus.
Karten
Name | Beschreibung |
---|---|
NORMAL | Eine Karte ohne besondere Bedeutung. |
DEFUSE | Diese Karte entschärft die Bombe. Sie wird automatisch gespielt, wenn du eine EXPLODE-Karte ziehst. |
EXPLODE | Dein Bot explodiert, falls du keine DEFUSE-Karte spielst. |
FUTURE | Mit „See the future“ kannst du die nächsten 3 Karten auf dem Stapel sehen. |
SHUFFLE | Mit dieser Karte kannst du den Kartenstapel neu mischen. |
Spielstart
Dein Bot wird informiert, dass ein neues Spiel startet.
Request
- action: „START“
- bots: Anzahl der Bots in dieser Spielrunde
- deck: Anzahl der Karten im Deck inkl. Exploding Kitten
- cards: Array mit der Anzahl der verschiedenen Karten
- NORMAL: n
- DEFUSE: n
- EXPLODE: n
- FUTURE: n
- SHUFFLE: n
Response
- ACK
Karte gezogen
Dein Bot hat eine Karte vom Stapel gezogen.
Request
- action: „DRAW“
- card: Name der gezogenen Karte
Response
- ACK
Dein Spielzug
Dein Bot ist am Zug und kann eine Karte ausspielen oder nicht. Dein Bot ist solange am Zug, bis er keine Karte mehr spielt. Er wird also mehrmals hintereinander mit dieser Aktion aufgerufen.
Request
- action: „PLAY“
- bots: Anzahl der verbliebenen Bots in Spielrunde
- deck: Anzahl der Karten im Deck inkl. Exploding Kitten
Response
- card: Name der auszuspielenden Karte oder „None“
Karte abgelegt
Ein anderer Bot hat eine Karte abgelegt.
Request
- action: „CARD“
- card: Name der abgelegten Karte
Response
- ACK
Bombe gezogen
Dein Bot hat soeben eine „Exploding Kitten“ Karte gezogen und mit „Defuse“ entschärft. Du kannst nun die „Exploding Kitten“ Karte an einer beliebigen Stelle im Kartenstapel platzieren.
Request
- action: „PLACE“
- count: Anzahl der Karten im Stapel
Response
- position: Position innerhalb des Kartenstapels
Die Zukunft sehen
Dein Bot hat die Karte „See the future“ gespielt. Er sieht nun die nächsten 3 Karten im Stapel.
Request
- action: „FUTURE“
- cards: Liste mit den Namen der nächsten 3 Karten im Stapel.
Response
- ACK
Explosion
Dein Bot hat soeben eine „Exploding Kitten“ Karte gezogen und hatte keine „Defuse“ Karte. Damit ist dein Bot ausgeschieden.
Request
- action: „EXPLODED“
Response
- ACK
Resultat einer Spielrunde
Am Ende einer Spielrunde erfährt dein Bot das Resultat.
Request
- action: „GAMEOVER“
Response
- ACK