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:

| 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 |
| 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 |
| 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 |
| 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 |
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 |
