Planung des Spielablaufs - thm-mni-ii/SWT-P_SS20_Dixit GitHub Wiki

Um den Spielablauf gut planen und implementieren zu können, haben wir uns für die Entwickelung für ein UseCase Diagramm entschieden. Dabei haben wir alle Spielphasen mit der Beinutzerinteraktion und Sonderfällen festgehalten:

UseCase-Diagramm für den Ablauf einer Runde

Use Case of One Round

Antwortsammelphase

Ziel Verschiedene falsche Antworten sollen am Ende gespeichert worden sein
Beschreibung Der Spieler hat eine bestimmte Zeitspanne um sich seine Antwort auszudenken und abzugeben.
Akteure Jeder Spieler
Vorbedingungen Die Frage muss angezeigt werden und ein Antwortfeld muss vorhanden sein.
Nachbedingungen Die ausgewählte Anwort muss gespeichert sein.
Auslösendes Ereignis Beginn der Runde
Ablauf Standardablauf:
* der Spieler denkt sich eine Antwort aus in gibt sie im dafür vorgesehenen Feld ein
* der Spieler klickt auf ein Abgebenfeld
-> erfolgreiche Abgabe

Spezialfall: Leere Antwort
* Der Spieler gibt eine leere Antwort ab
-> Fehlerhafte Abgabe

Spezialfall: Keine oder eine unvollständige Antwort
* der Spieler hat in der vorgesehenen Zeit nicht auf den Abgabebutton geklickt
-> Fehlerhafte Abgabe

Spezialfall: Richtige Antwort
* Ein Spieler gibt die richtige Antwort ein
-> Fehlerhafte Abgabe


Erfolgreiche Abgabe:
* die Antwort wird an das Spiel übermittelt
Fehlerhaft Abgabe:
* der Spieler erhält einen Minuspunkt

Auswahlphase

Ziel Der Spieler wählt eine Antwort aus
Beschreibung Der Spieler hat eine bestimmte Zeitspanne um eine (die richtige) Antwort auszuwählen.
Akteure Jeder Spieler
Vorbedingungen Alle zuvor eingetragenen falschen Antworten liegen als Daten vor und die richtige Antwort wird vom System zur Verfügung gestellt.
Nachbedingungen Der Spieler hat eine Antwort ausgewählt, zu jedem Spieler wird die Antwort gespeichert
Auslösendes Ereignis Ende der Antwortsammelphase
Ablauf Standardablauf:
* Alle zuvor eingetragenen unterschiedlichen falschen Antworten und die vom System zur Verfügung gestellte richtige Antwort werden angezeigt
* der Spieler klickt (mit der Maus oder Tastaturauswahl) auf eine Antwort
* diese Antwort wird vom System hervorgehoben und gespeichert

Spezialfall: Keine Auswahl
* der Spieler wählt in der vorgesehenen Zeit keine Antwort aus
* keine Antwort wird hervorgehoben und eine leere oder keine gespeichert

Spezialfall: Mehrere Spieler haben die gleiche falsche Antwort abgeben
-> die mehrfache Antwort wird nur einmal angezeigt

Spezialfall: Nur eine oder keine falsche Antwort bleibt
* nur eine oder keine falsche Antwort bleibt übrig, da die restlichen leer oder gleich sind
* aber für die Auswahl werden min 2 vers. falsche Antwort + die richtige benötigt
-> Auflösung der Runde


Auflösung der Runde:
* die richtige Antwort wird angezeigt, die Runde überspringen und keiner erhält Punkte

Auswertungsphase

Ziel Jeder Spieler bekommt seine Punkte angezeigt und eine Rangliste wird erstellt
Beschreibung Die abgegebenen Antworten werden ausgewertet und Punkte dazu erstellt.
Akteure System
Vorbedingungen Alle Daten sind vorhanden (welcher Spieler, welche Antwort ausgewählt hat und welche die korrekte ist).
Nachbedingungen Die gesamten Punkte der jeweiligen Spieler werden gespeichert (Rundenweise Aktualisierung)
Auslösendes Ereignis Ende der Auswahlphase
Ablauf Standardablauf:
* Richigte Anwort wird hervorgeheben
* Weiter-Button erscheint
* alle Spieler klicken weiter (notfalls mit Timer oder Kickoff)
* Ranking mit Punkten erscheint

Punkte:
* für die richtige Antworten erhält ein Spieler 3 Punkte
* für jeden anderen Spieler der auf die eigene Antwort tippt, erhält der Spieler einen Punkt

Spezialfall: Tipp auf eigene Antwort
* ein Spieler hat auf seine eigene Antwort getippt
-> der Spieler erhält einen Minuspunkt

Runde

Ziel Eine Runde wird durchlaufen
Beschreibung Eine Runde wird mit den drei Phasen Antwortsammelphase, Auswahlphase und Auswertungsphase durchlaufen
Akteure Alle Spieler, System
Vorbedingungen Ein Spiel wurde gestartet
Nachbedingungen Eine Runde ist abgeschlossen und die Ergebnisse festgehalten
Auslösendes Ereignis Start einer Runde
Ablauf Standardablauf:
* Antwortsammelphase
* Auswahlphase
* Auswertungsphase

UseCase-Diagramm für den Ablauf eines Spiels

Für den Ablauf eines Spieles hatten wir uns den folgenden Ablauf überlegt, doch im Laufe der Entwickelung stellt sich heraus, dass dies im Framework, aus dem das Spiel heraus gestartet wird, geregelt wird. Hier findet ihr trotzdem einen Überblick zu unseren Überlegungen, ebenfalls in Form eines UseCase Diagramms.

Ziel Ein Spiel wird absolviert und alle Ergebnisse gespeichert
Beschreibung Eine Runde wird mit den drei Phasen Antwortsammelphase, Auswahlphase und Auswertungsphase durchlaufen
Akteure Alle Spieler, System
Vorbedingungen Keine
Nachbedingungen Die Ergebnisse festgehalten
Auslösendes Ereignis Betreten des Dixit-Raums
Ablauf Standablauf:
* Spielkonfiguration mit Anzahl der Runden
* Spielstart
* Durchlauf der Runden
* Ranking
* Möglichkeit neues Spiel zu starten

Spezialfall: <2 Spieler
* die Mindestspieleranzahl von 2 ist nicht erreicht
-> Spiel kann nicht gestartet werden

Use Case Room

⚠️ **GitHub.com Fallback** ⚠️