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:
Aktion 2 - Tauschen:
Der/Die Spieler*in tauscht entweder:
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.
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: