Projekt 1: Up and Down
Im ersten Projekt des SoPra25a soll das einfache Kartenspiel „Up and Down“ als Kotlin-Anwendung unter Verwendung des BoardGameWork realisiert werden.
Material und Aufbau
„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:
- Handkarten: Jede*r Spieler*in erhält zu Beginn des Spiels 5 verdeckte Handkarten.
- Nachziehstapel: Die restlichen 42 Karten werden in zwei verdeckte Nachziehstapel (einer für jede*n Spieler*in) zu je 21 Karten aufgeteilt.
- Zentralstapel: Von jedem der Nachziehstapel wird die oberste Karte offen in die Mitte des Tisches gelegt. Diese beiden Karten bilden damit die beiden offenen Zentralstapel.
Ziel des Spiels
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.
Spielablauf
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
- Sofern der/die Spieler*in eine Karte legen kann, kann diese aus der Hand offen auf einen der beiden Zentralstapel gelegt werden.
- Die Karte muss entweder eine Stufe höher oder niedriger als die Karte oben auf dem gewählten Zentralstapel sein. Es gilt die folgende Reihenfolge: 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < Bube < Dame < König < Ass < 2. Die Farbe (Karo, Herz, Pik, Kreuz) spielt hier keine Rolle.
- Beispiel 1: Liegt eine Pik 7 auf dem Stapel, darf eine Herz 6 oder Kreuz 8 gespielt werden.
- Wird eine Karte der gleichen Farbe (Karo, Herz, Pik, Kreuz) wie die Karte oben auf dem gewählten Zentralstapel gelegt, so darf diese auch zwei Stufen höher oder niedriger sein. Es gilt die selbe Reihenfolge wie oben.
- Beispiel 2: Liegt ein Pik König auf dem Stapel, darf (neben Damen und Assen beliebiger Farbe) auch ein Pik Bube oder eine Pik 2 gespielt werden.
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.
Spielende
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.
Anforderungen an das Programm
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*innen Namen konfiguriert werden können.
- Die Spieler*innen wählen abwechselnd am gleichen Bildschirm ihre Aktionen aus (Hotseat-Modus).
- Die verdeckten Handkarten einer der Spielenden sollen nur von ihm/ihr einsehbar sein. Daher wird ein „nächste*r Spieler*in“-Screen benötigt, der alle Karten verdeckt und erst nach Bestätigung die Karten des nächsten Spielenden anzeigt.
- Am Ende des Spiels soll der/die Gewinner*in angezeigt werden.