sopra:26a:projekt1:start

Projekt 1: Schiebe-Poker

Im ersten Projekt des SoPra26a soll das einfache Kartenspiel „Schiebe-Poker“ (in der SoPra-Variante) als Kotlin-Anwendung unter Verwendung des BoardGameWork realisiert werden.

Schiebe-Poker ist ein Kartenspiel für 2-4 Spieler*innen 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 jede*r Spieler*innen zwei verdeckte und drei offene Karten. Drei Karten werden offen in die Mitte gelegt. Die übrigen Karten bilden einen Nachziehstapel. Zusätzlich gibt es einen Ablagestapel, der zu Beginn des Spiels leer ist.

Die Spieler*innen einigen sich vor Spielstart auf eine Anzahl an zu spielenden Runden zwischen zwei und sieben.

Beginnend mit einem/einer zufälligen Startspieler*in sind reihum alle Spieler*innen an der Reihe. Pro Spielzug muss jede*r Spieler*in zwei Aktionen durchführen. Alle Aktionen werden hintereinander ausgeführt. Das heißt, dass nach der ersten ausgeführten Aktion das Spielfeld entsprechend dieser Aktion aktualisiert wird. Daraufhin kann der/die Spieler*in die zweite Aktion auf Basis des neuen Spielfeldes auswählen. Hierbei dürfen die folgenden zwei Aktionen beliebig miteinander kombiniert werden: (Schieben x Tauschen, Tauschen x Schieben, Schieben x Schieben, Tauschen x Tauschen)

Aktion 1 - Schieben:

  • Der/Die Spieler*in wählt aus, ob nach links oder nach rechts verschoben werden soll.
  • Beim Verschieben nach links werden die Karten in der Mitte nach links verschoben. Die Karte am linken Rand wird offen auf den Ablagestapel gelegt. Die beiden übrigen Karten wandern einen Platz nach links, und der freie Platz am rechten Rand wird mit einer Karte vom Nachziehstapel aufgefüllt (siehe Abbildung für Zustand vor und nach der Aktion). Die neu eingeschobene Karte kommt also immer vom Nachziehstapel.
  • Verschieben nach rechts erfolgt analog.

Aktion 2 - Tauschen:

Der/Die Spieler*in tauscht entweder:

  • eine seiner/ihrer offenen Karten mit einer aus der Mitte,
  • alle drei seiner/ihrer offenen Karten mit den drei Karten in der Mitte,
  • oder verzichtet auf einen Tausch.

Bei einem Dreifach-Tausch wird die linke offene Karte des Spielenden mit der linken offenen Karte in der Mitte getauscht. Für die mittlere und die rechte Karte folgt die Regel analog.

  • Die offenen Karten der Spielenden dürfen nicht sortiert werden. Die Reihenfolge der Karten ergibt sich alleine aus der initialen Befüllung der Karten und den daraufhin ausgeführten Spielaktionen.
  • Sollte der Nachziehstapel zu einem Zeitpunkt leer sein, an dem eine Karte gezogen werden müsste, so wird der Ablagestapel zu diesem Zeitpunkt gemischt und als neuer Nachziehstapel verwendet.

Das Spiel endet nach der zu Spielbeginn festgelegten Anzahl an Runden.

Die zwei verdeckten und drei offenen Karten eines/einer Spieler*in bilden seine/ihre Hand. Der Wert einer Hand ergibt sich nach den Regeln für Poker (siehe Eintrag auf Wikipedia) und liegt zwischen Höchste Karte und Royal Flush. Haben zwei Spieler*innen die gleiche Handstärke, wird es als unentschieden gewertet, unabhängig vom Entscheidungskriterium (siehe Eintrag auf Wikipedia). Dies gilt auch für „Höchste Karte“. Haben zwei Spielende beispielsweise einmal ein Ass als höchste Karte und einmal einen König als höchste Karte, so wird dies auch als unentschieden bewertet. Haben zwei Spieler*innen beispielsweise je zwei Paare, ist dies als unentschieden zu werten, unabhängig von der Höhe der jeweiligen Paare bzw. fünften Karte.

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 Spielenden Namen konfiguriert werden können.
  • Die Spieler*innen wählen abwechselnd am gleichen Bildschirm ihre Aktionen aus (Hotseat-Modus).
  • Die verdeckten Handkarten der Spieler*innen sollen nur von ihm/ihr einsehbar sein. Daher wird ein „nächste*r Spielende*r“-Screen benötigt, der alle Karten verdeckt und erst nach Bestätigung die Karten des nächsten Spielenden anzeigt.
  • Alle Spielaktionen sollen nachvollziehbar sein. Das heißt, dass es einen Log geben soll, der während des Spiels angezeigt werden soll, der jeden Spielzug protokolliert. Öffentliche Spielaktionen wie „Schieben“ und „Tauschen“ sollen möglichst vollständig protokolliert werden (z.B.: Spieler 1 (Alice) hat die Karten nach links geschoben. Spieler 1 (Alice) hat die mittlere offene Karte mit ihrer offenen linken Karte getauscht).
  • Am Ende des Spiels soll die Rangfolge der Spieler angezeigt werden.
  • sopra/26a/projekt1/start.txt
  • Zuletzt geändert: 2026/02/16 17:32
  • von till.schallau