sopra:24d:projekt1

Projekt 1: Tauchen

Im ersten Projekt des SoPra24d soll das einfache Kartenspiel „Tauchen“ als Kotlin-Anwendung unter Verwendung des BoardGameWork realisiert werden.

Tauchen ist ein Kartenspiel für 2 Spieler und wird mit einem Standard-Blatt bestehend aus 52 Karten gespielt:

{Kreuz, Pik, Herz, Karo} × {2, 3, 4, 5, 6, 7, 8, 9, 10, Bube, Dame, König, Ass}

Zu Beginn des Spiels erhält jeder Spieler fünf verdeckte Handkarten. Die übrigen Karten bilden einen Nachziehstapel. Zusätzlich hat jeder Spieler einen Sammelstapel, der zu Beginn des Spiels leer ist. In der Tischmitte können während des Spiels 0-3 Karten liegen und gibt es einen offenen Abwurfstapel, der zu Beginn leer ist.

Ziel des Spiels ist es, in der Tischmitte Kartentrios zu bilden. Dazu legen die Spieler abwechselnd Karten von der Hand in die Tischmitte. Ein Kartentrio besteht aus drei Karten derselben Spielfarbe {Kreuz, Pik, Herz, Karo} oder desselben Wertes {2, 3, 4, 5, 6, 7, 8, 9, 10, Bube, Dame, König, Ass}. Der Spieler, der die dritte Karte in die Tischmitte legt erhält das Trio und legt es (offen) auf seinen Ablagestapel. Ein Trio aus gleicher Spielfarbe bringt dem Spieler 5 Punkte, ein Trio aus gleichem Kartenwert bringt 20 Punkte. Der andere Spieler ist danach am Zug.

Beginnend mit einem zufälligen Startspieler sind die Spieler abwechselnd an der Reihe. Pro Spielzug muss jeder Spieler genau eine der folgenden drei Aktionen durchführen:

Aktion 1 - Karte Legen:

  • Der Spieler wählt eine Handkarte aus und legt diese in die Tischmitte.
  • Die Karte muss dabei zum aktuellen Trio passen:
    • Liegt noch keine Karte in der Mitte kann eine beliebige Karte gelegt werden.
    • Liegt eine Karte in der Mitte, so muss die gelegte Karte entweder dieselbe Spielfarbe oder denselben Wert haben.
    • Liegen zwei Karten in der Mitte, so muss die dritte Karte das Trio komplettieren.

Aktion 2 - Karte Ziehen:

  • Der Spieler zieht eine Karte vom Nachziehstapel und nimmt diese auf die Hand.
  • Der Spieler darf anschließend die gezogene Karte in die Tischmitte legen, sofern dies ein gültiges Ablegen darstellt.
  • Es gibt keine Bedienpflicht:
    • Es darf jederzeit eine Karte strategisch gezogen werden, auch wenn eine gültige Karte gelegt werden könnte.
    • Eine gezogene Karte muss nicht gelegt werden, auch wenn dies möglich ist.

Aktion 3 - Karte Tauschen (Spezialaktion):

  • Pro Spielrunde (also pro gebildetes Trio) kann ein Spieler einmal eine Karte gegen eine aus der Mitte austauschen. Die neuen Karten in der Mitte müssen dabei weiterhin ein gültiges Trio bilden. Beispiel:
    • In der Tischmitte liegen Pik 7 und Herz 7. Die Spieler kann nun die Herz 7 gegen eine Pik 10 austauschen und ermöglicht damit statt einem 7-Trio nun ein Pik-Trio.
    • Es ist auch gültig, die Herz 7 gegen eine Karo 7 zu tauschen.
  • Die entfernte Karte nimmt der Spieler auf die Hand.
  • Sobald ein Trio gebildet wurde bekommen beide Spieler wieder eine Spezialaktion für die nächste Runde.

Hat der Spieler nach seinem Spielzug mehr als 8 Karten auf der Hand, so muss er eine von ihm gewählte Handkarte offen auf den Abwurfstapel in der Tischmitte abwerfen.

Das Spiel endet sobald die letzte Karte vom Nachziehstapel gezogen wurde. Die Karte darf vom Spieler noch gelegt werden, falls dies möglich ist, und ein dadurch vervollständigtes Trio wird noch gewertet.

Das zu entwickelnde Programm soll den Spielablauf steuern und für die Einhaltung der Spielregeln sorgen. Hierbei sollen zusätzliche Features umgesetzt werden, die nicht direkt auf den Spielregeln basieren:

  • Bei Programmstart sollen für die Spieler Namen konfiguriert werden können.
  • Die Spieler wählen abwechselnd am gleichen Bildschirm ihre Aktionen aus (Hotseat-Modus).
  • Die verdeckten Handkarten eines Spielers sollen nur von ihm einsehbar sein. Daher wird ein „nächster Spieler“-Screen benötigt, der alle Karten verdeckt und erst nach Bestätigung die Karten anzeigt.
  • Am Ende des Spiels sollen die Punkte der Spieler und eine Rangfolge angezeigt werden.
  • sopra/24d/projekt1.txt
  • Zuletzt geändert: 2024/10/08 16:22
  • von dominik.schmid