Inhaltsverzeichnis

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:

  1. Handkarten: Jede*r Spieler*in erhält zu Beginn des Spiels 5 verdeckte Handkarten.
  2. Nachziehstapel: Die restlichen 42 Karten werden in zwei verdeckte Nachziehstapel (einer für jede*n Spieler*in) zu je 21 Karten aufgeteilt.
  3. 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

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: