Projekt 1: Schwimmen
Im ersten Projekt des SoPra22a soll das einfache Kartenspiel „Schwimmen“ (in der SoPra-Variante) als Kotlin-Anwendung unter Verwendung des BoardGameWork realisiert werden.
Material und Aufbau
Schwimmen ist ein Kartenspiel für 2-4 Spieler und wird mit einem Standard-Skat-Blatt bestehend aus 32 Karten gespielt:
{Kreuz, Pik, Herz, Karo} x {7, 8, 9, 10, Bube, Dame, König, Ass}
Zu Beginn des Spiels bekommt jeder Spieler (geheim) drei Karten. Drei weitere Karten werden offen in die Mitte gelegt. Die verbleibenden Karten bilden den Nachziehstapel.
Punktewertung
Ziel des Spiels ist es, am Ende die meisten Punkte auf der Hand zu haben. Gewertet wird hierbei die höchste Summe einer der vier Farben, wobei {Bube, Dame, König} jeweils als 10 Punkte zählen und das Ass als 11 Punkte. Damit sind maximal 31 Punkte (Ass plus zwei Karten mit je 10 Punkten) möglich. Drei Karten unterschiedlicher Farbe, aber gleicher Art (z.B 3×8 oder 3xDame) ergeben 30.5 Punkte.
Beispiele für Punkte
- Karo-9, Karo-Bube, Karo-Ass → 30 Punkte
- Herz-7, Herz-10, Herz-Bube → 27 Punkte
- Pik-Ass, Pik-7, Kreuz-Dame → 18 Punkte
- Herz-Bube, Karo-Dame, Kreuz-König → 10 Punkte
- Kreuz-8, Karo-8, Pik-8 → 30.5 Punkte
Spielablauf
Beginnend beim ersten Spieler sind reihum alle Spieler an der Reihe, bis das Spiel beendet ist (die Bedingungen hierfür sind in Spielende erläutert). Ist ein Spieler an der Reihe, stehen ihm vier mögliche Aktionen zur Auswahl:
- Alle Karten austauschen: Der Spieler nimmt alle Karten aus der Mitte auf die Hand und legt alle Karten, die er zuvor auf der Hand hatte, in die Mitte.
- Eine Karte austauschen: Eine einzelne Karte wird von der Hand mit einer einzelnen Karte aus der Mitte ausgetauscht.
- Passen: Möchte ein Spieler keine Karten austauschen, kann er passen. Haben der Reihe nach alle Spieler gepasst, werden die drei Karten aus der Mitte auf den Ablagestapel gelegt und drei neue vom Nachziehstapel in die Mitte gelegt.
- Klopfen: Denkt ein Spieler, ein gutes Blatt auf der Hand zu haben, kann er klopfen. Genauso wie beim Passen tauscht er hierbei keine Karten aus. Nachdem ein Spieler geklopft hat, sind alle anderen Spieler noch genau einmal an der Reihe. Danach ist das Spiel beendet.
Spielende
Das Spiel kann auf zwei Arten beendet werden. Der normale Weg ist, wie zuvor erklärt, dass ein Spieler klopft. Waren danach alle anderen Spieler noch einmal an der Reihe, ist das Spiel beendet. Es kann aber auch passieren, dass wenn alle Spieler gepasst haben, nicht mehr genügend Karten im Nachziehstapel sind, um die Mitte mit drei Karten neu zu bestücken. In diesem Fall endet das Spiel sofort.
Gewonnen hat bei Spielende der Spieler mit der höchsten Punktzahl. Bei Punktegleichstand 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 2-4 Spieler mit Namen konfiguriert werden können
- Die Spieler wählen nacheinander und reihum am gleichen Bildschirm ihre Aktionen aus (Hotseat-Modus)
- Am Ende des Spiels soll das Punkteergebnis angezeigt werden und welcher Spieler gewonnen hat