Architecture Kata “Stadt-Land-Fluss”
Schreibe ein Programm, mit dem mehrere Spieler Stadt-Land-Fluss spielen können.
Das Spiel
Das “Spielfeld” ist eine Tabelle in folgender Form:
Stadt | Land | Fluss | … | Punkte |
London | Lebanon | Lena | 25 | |
Jacksonville | Japan | Jennisei | 30 | |
50 |
Die Tabelle enthält mehrere Spalten für Kategorien. Jede Zeile entspricht einer Runde des Spiels
Während jeder Runde des Spiels versuchen die Spieler zu jeder Kategorie einen Begriff zu finden, der mit einem bestimmten Buchstaben des Alphabets beginnt. Der Buchstabe wird durch das Spiel zufällig bestimmt und darf pro Spiel nicht mehrfach verwendet werden.
Die Anzahl der Runden pro Spiel ist begrenzt (z.B. 10) und wird zu Beginn des Spiels festgelegt.
Eine Runde endet, sobald der erste Spieler zu jeder Kategorie einen Begriff gefunden hat und “Stopp” ruft, bzw. nach einer vorher festgelegten Zeitspanne (z.B. 60 Sekunden).
Die Punkte jeder Runde werden berechnet als die Summe der Punkte pro Kategorie:
- Solo: ist ein Spieler der Einzige mit einem Begriff in der Kategorie, erhält er in dieser Kategorie 20 Punkte.
- Eindeutig: ist der Begriff eines Spielers eindeutig in der Kategorie, erhält er dafür 10 Punkte.
- Doppelt: für einen Begriff, der auch von einem anderen Spieler in der Kategorie verwendet wurde, erhält der Spieler 5 Punkte.
- Ohne: ohne Begriff in der Kategorie erhält der Spieler in dieser Kategorie 0 Punkte.
Die Gesamtpunktzahl eines Spielers ist die Summe seiner Punkte aus den einzelnen Runden.
Gewinner ist der Spieler, mit der höchsten Gesamtpunktzahl.
Das Programm
Das Programm soll es den Spielern leicht machen, Stadt-Land-Fluss zu spielen, wenn sie zusammensitzen.
Ein Spieler kann das Spiel starten und erhält dabei eine eindeutige Spiel Id. Die Spiel Id kann von den anderen Spielern benutzt werden, um bei diesem Spiel mitzuspielen. Alternativ kann der Initiator des Spiels die anderen Spieler per Email einladen. Dazu gibt er die Emailadressen der Mitspieler in das Programm ein.
Bevor die Spiel Id erzeugt wird, muss das Spiel konfiguriert werden:
- Welche Kategorien sollen verwendet werden? Standardwerte: Stadt, Land, Fluss, Name, Tier, Beruf
- Welcher Timeout soll verwendet werden? Standard: keiner, jede Runde läuft so lange weiter, bis ein Spieler „Stopp“ ruft.
- Wie viele Runden soll gespielt werden?
Sobald alle Spieler im Spiel sind, kann der Initiator die erste Runde starten. Das Programm zeigt den Buchstaben an, mit dem die Begriff der Kategorien beginnen müssen.
Spieler können eine Runde beenden oder die Runde stoppt automatisch bei erreichen des Timeouts, falls ein solcher festgelegt wurde.
Die Punktevergabe kann nicht automatisiert erfolgen, da einzelne Einträge in den Kategorien evtl. inhaltlich nicht korrekt sind. Die Spieler müssen sich daher auf die Richtigkeit und die Eindeutigkeit verständigen und dann ihre Punkte vergeben. Hier ist Fairness gefragt ;-)
Die Summe der Punkte pro Runde und die Gesamtpunktzahl wird allerdings automatisch berechnet.
Nach der Punktevergabe kann die nächste Runde gestartet werden.
Das Spiel endet nach der vorher festgelegten Anzahl von Runden. Alternativ kann es jederzeit unterbrochen werden.
Variation
Um die Punkte einer Runde zu vergeben, werden die Lösungen aller Spieler den anderen Spielern zur Beurteilung vorgelegt. Jeder Spieler markiert dann die Begriffe still für sich als Solo, Eindeutig, Doppelt oder Ungültig. Die Beurteilungsergebnisse werden anschließend vom Programm bewertet und die Punktzahlen ermittelt.
Im Falle eines Konflikt, wenn ein Eintrag von Spielern unterschiedlich bewertet wurde, wird dieser Eintrag dem Initiator des Spiels zur Klärung vorgelegt.