Im ersten Projekt des SoPra25a soll das einfache Kartenspiel „Up and Down“ als Kotlin-Anwendung unter Verwendung des BoardGameWork realisiert werden.
„Up and Down“ ist ein Kartenspiel für 2 Spieler und wird mit einem Standard-Blatt bestehend aus 52 Karten gespielt:
{Karo, Herz, Pik, Kreuz} × {2, 3, 4, 5, 6, 7, 8, 9, 10, Bube, Dame, König, Ass}
Zu Beginn des Spiels wird das Spielmaterial auf die beiden Spieler*innen verteilt:
Das Ziel ist es, alle Karten aus dem eigenen Nachziehstapel und alle Handkarten loszuwerden, indem gültige Karten auf die Zentralstapel gelegt werden. Ein*e Spieler*in gewinnt, sobald er/sie keine Karten mehr hat.
Der/Die Startspieler*in wird zufällig bestimmt. Danach sind die Spieler*innen abwechselnd an der Reihe. Pro Spielzug hat ein*e Spieler*in genau eine der folgenden Möglichkeiten:
Karte Legen
Karte Nachziehen
Wenn man höchstens 9 Handkarten besitzt, kann man eine Karte von dem eigenen Nachziehstapel ziehen.
Handkarten ersetzen
Hat man mindestens 8 Karten auf der Hand und der Nachziehstapel ist nicht leer, darf man die Handkarten in den eigenen Nachziehstapel mischen und zieht dann 5 neue Karten von dem neu gemischten Nachziehstapel auf die Hand.
Passen
Wenn keine der anderen drei Aktionen durchgeführt werden kann, dann muss gepasst werden. Es kann nicht freiwillig gepasst werden.
Das Spiel endet, wenn ein*e Spieler*in alle Karten aus seinem/ihrem Nachziehstapel und alle Handkarten losgeworden ist. Diese*r Spieler*in gewinnt das Spiel.
Das Spiel endet außerdem, wenn beide Spieler*innen nacheinander gepasst haben. In diesem Fall gewinnt der/die Spieler*in mit den wenigsten Handkarten. Bei Gleichstand wird das Spiel als Unentschieden 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: