How To: Fortschrittskarte ausspielen

Software Engineering I, SS13

Da das erfolgreiche Ausspielen einer Fortschrittskarte nicht ganz trivial ist, wird in diesem Beitrag exemplarisch das Ausspielen der Fortschrittskarte “Handelshafen” vorgestellt. Das erste Szenario veranschaulicht den erfolgreichen Austausch zweier Rohstoffkarten durch 2 Handelswaren. Das zweite Szenario beschreibt einen möglichen Fehlerfall.

Hinweis: Natürlich gibt es noch eine ganze Reihe anderer Fehlerfälle, die sich jedoch analog zu dem unten dargestellten verhalten.

Szenario: Zenobios spielt die Fortschrittskarte “Handelshafen” aus und tauscht 2 Getreide gegen 2 Handelswaren.

Startsituation:

Zenobios, Bob und Charly spielen Siedler von Catan. Die momentanen Karten der jeweiligen Spieler sind:

  • Zenobios: Fortschrittskarte “Handelshafen” (Commercial Harbor), 2 Getreide
  • Bob: 1 Münze, 1 Tuch
  • Charly: 2 Holz, 1 Papier

Aktion:

Zenobios spielt seine Fortschrittskarte “Handelshafen” aus. Dazu schickt er folgenden Befehl an den Server:

{"@action":"PLAY","properties":{"entry":{"key":"id","value":"ProgressCard@473d86b3"}}}

Der Server antwortet (sofern keine Fehler auftreten) mit:

{"@ts":"1374831612034","@src":"SERVER","@prop":"USER_MESSAGE","@nv":"OK - offer(card,user)"}

In der Nachricht fordert der Server den Spieler nun auf, einen OFFER Befehl zu schicken, der einem anderen Spieler eine Rohstoffkarte anbietet. Zenobios schickt folgenden Befehl an den Server, um Charly ein Getreide anzubieten und bekommt vom Server (sofern keine Fehler auftreten) eine OK Meldung:

  1. {"@action":"OFFER","properties":{"entry":[{"key":"user","value":"UserAssets@551a1599"},{"key":"id","value":"Card@4051eda3"}]}}
  2. {"@ts":"1374831958351","@src":"SERVER","@prop":"USER_MESSAGE","@nv":"OK - offer(card,user)"}

Charly bekommt vom Server nun die Nachrichten, dass ihm Zenobios eine Rohstoffkarte vom Typ Getreide (GRAIN) angeboten hat sowie die Aufforderung, eine Handelsware auszuwählen:

  1. {"@ts":"1374831799175","@src":"SERVER","@prop":"USER_MESSAGE","@nv":"OK - User zenobios offered you a card of type GRAIN. Choose one of your commodity cards for exchange."}
  2. {“@ts”:”1374831799176″,”@src”:”SERVER”,”@prop”:”USER_MESSAGE”,”@nv”:”OK – choose(commodityCard)”}

Charly wählt als Handelsware Papier aus und schickt daher folgende Nachricht an den Server, die mit einem OK bestätigt wird (sofern keine Fehler auftreten):

  1. {"@action":"CHOOSE","properties":{"entry":{"key":"id","value":"Card@71f20640"}}}
  2. {"@ts":"1374833919934","@src":"SERVER","@prop":"USER_MESSAGE","@nv":"OK - CHOOSE"}

Analog verhält sich der Kartenaustausch mit Bob. Nachdem der Kartentausch mit Bob abgeschlossen ist, schickt der Server dem Spieler Zenobios die folgende Nachricht:

{"@ts":"1374832550656","@src":"SERVER","@prop":"USER_MESSAGE","@nv":"OK - yourTurn"}

Endsituation:

Die momentanen Karten der jeweiligen Spieler sind:

  • Zenobios: 1 Münze, 1 Papier
  • Bob: 1 Getreide, 1 Tuch
  • Charly: 2 Holz, 1 Getreide

Zenobios kann seinen Zug nun normal fortsetzen.

Szenario: Zenobios spielt die Fortschrittskarte “Handelshafen” aus. Kein anderer Spieler besitzt Handelswaren.

Startsituation:

Zenobios, Bob und Charly spielen Siedler von Catan. Die momentanen Karten der jeweiligen Spieler sind:

  • Zenobios: Fortschrittskarte “Handelshafen” (Commercial Harbor), 3 Getreide
  • Bob: 3 Getreide
  • Charly: Keine Karten

Aktion:

Zenobios spielt seine Fortschrittskarte “Handelshafen” aus. Dazu schickt er folgenden Befehl an den Server:

{"@action":"PLAY","properties":{"entry":{"key":"id","value":"ProgressCard@435a0940"}}}

Da kein anderer Spieler eine Handelsware besitzt, antwortet der Server mit:

  1. {"@ts":"1374832550637","@src":"SERVER","@prop":"USER_MESSAGE","@nv":"ERROR: PLAY - Sorry, but there is no player who has a commodity card."}
  2. {"@ts":"1374832550656","@src":"SERVER","@prop":"USER_MESSAGE","@nv":"OK - yourTurn"}

Endsituation:

Die momentanen Karten der jeweiligen Spieler sind:

  • Zenobios: 3 Getreide
  • Bob: 3 Getreide
  • Charly: Keine Karten