sopra:24c:projekt2

Projekt 2: Patchwork

Im zweiten Projekt des SoPra24c soll das Brettspiel Patchwork als Kotlin-Anwendung unter Verwendung des BoardGameWork realisiert werden.

Bei Patchwork handelt es sich um ein Legespiel für zwei Spieler mit vollständig offenen Informationen (d.h. es gibt keine geheimen Nachziehstapel, Handkarten, o. Ä.). Ziel des Spiels ist es, Stoffstücke zu kaufen und diese so aneinander zu nähen (zu legen), dass eine möglichst lückenlose Stoffdecke entsteht. Eine Siegstrategie muss nicht nur geschickt mit der Währung „Knöpfe“ haushalten, sondern auch die begrenzte Zeit und die Möglichkeiten des Gegners berücksichtigen.

Das zu entwickelnde Programm soll den Spielablauf steuern und für die Einhaltung der Spielregeln sorgen. Zusätzliche Features, die nicht direkt auf den Spielregeln basieren, sollen umgesetzt werden:

  • Die Reihenfolge der Spielenden soll vor Spielstart sowohl frei wählbar konfiguriert als auch randomisiert werden können.
  • Das Spiel soll in zwei Modi unabhängig gespielt werden können (eine Mischung der beiden Modi ist nicht vorgesehen):
    • Die Spielenden wählen nacheinander und reihum am gleichen Bildschirm ihre Aktionen aus (Hotseat-Modus).
    • Die Spielenden spielen gegeneinander via Netzwerk unter Verwendung des BGW-Net-Moduls.
  • Ein Spiel soll unterbrochen und gespeichert werden können, um es zu einem späteren Zeitpunkt (auch nach Neustart des Programms) fortzusetzen. Für Netzwerkspiele soll dieses Feature deaktiviert sein.
  • Es sollen simulierte Mitspieler („KIs“) zur Verfügung stehen. Hierbei soll es eine einfache Test-KI geben, die z.B. nur randomisiert einen der möglichen Züge auswählt, sowie eine „richtige“ für das am Ende stattfindende KI-Turnier. Es soll auch möglich sein, dass reine KI-Spiele (also ohne menschliche Spielende) durchgeführt werden. Damit ein Zuschauen und Nachvollziehen der Züge möglich wird, soll die Simulationsgeschwindigkeit angepasst werden können.
  • Die KIs dürfen beim Spielen keine Vorteile gegenüber einem menschlichen Spielenden ausnutzen.
  • Kein KI-Zug darf länger als 10 Sekunden benötigen.
  • Um verschiedene Strategien studieren und ausprobieren zu können, soll das Spiel über eine Undo- und eine Redo-Funktion verfügen. Die Spielzüge sollen bis zum Spielstart zurückgenommen werden können. Für Netzwerkspiele soll dieses Feature deaktiviert sein.
  • Jede Gruppe soll zu ihrem Spiel auch eine PDF-Anleitung beilegen, die beschreibt, wie das Spiel ausgeführt und bedient wird.

Am Ende des Projekts findet ein Turnier statt, bei dem die KIs der Gruppen in 1v1-Spielen über den Netzwerkmodus gegeneinander antreten. Der genaue Ablauf des Turniers wird im Laufe des Projekts noch festgelegt.

Ein KI-Zug darf dabei maximal 10 Sekunden Rechenzeit benötigen und muss regelkonform sein. Sollte eine KI sich nicht an die Spielregeln halten (beabsichtigt oder unbeabsichtigt), wird die Gruppe vom KI-Turnier ausgeschlossen.

Die Import-Datei im CSV-Format ist so aufgebaut, dass sie neben der kodierten Form der Spielsteine auch die Kosten (in Knöpfen und Zeit) sowie das Einkommen enthalten. Die Kodierung der Form ist ein Bitvektor (bestehend aus 'X'='belegt' und '-'='frei'), der die Felder in einer Matrix mit 3 Zeilen à 5 Spalten hintereinander enthält (Die ersten 5 Zeichen kodieren die erste Zeile, usw.)

Zwei Anmerkungen zu sehr unwahrscheinlichen Fällen:

  • Wenn von den drei auszuwählenden Patches keiner gelegt werden kann, muss der Spieler vorrücken.
  • Wenn der Spieler einen Spezialflicken erhält, auf der Decke aber kein Platz mehr ist, verfällt der Spezialflicken.
  • Der Aufbau und die Verteilung der Knöpfe/Spezialflicken ist nach dem runden Zeitplan zu modellieren.
  • sopra/24c/projekt2.txt
  • Zuletzt geändert: 2024/08/15 14:38
  • von christian.riest