-
Notifications
You must be signed in to change notification settings - Fork 0
4. Sprint
- Erstellen eines GameManagers: Dieser ist unter Anderem verantwortlich für den Start des Spiels.
Punkteplanung: 20 - Erstellung des PlayerManagers: Der PlayerManager ist neben anderen Aufgaben für die Spielerverwaltung zuständig.
Punkteplanung: 13 - Präsentation: Die Präsentation soll in der Woche vom 09. bis 15.12.19 stattfinden (die Präsentation ist aufgrund des von der Gruppe selbst zu definierenden Umfangs nicht in der Punkteplanung inbegriffen).
Die Funktionen für den GameManager und PlayerManager wurden zunächst gemäß des Spielsablaufs wie folgt festgelegt:
- GM lädt Fragenset
Startphase:
- GM lädt Frage und schickt sie an PM
- void NextQuestion()
- pm.BroadcastQuestion()
- PM verteilt Frage an Player
- void BroadcastQuestion(Question question, float time)
- Spieler antworten
- pm.RegisterAnswer(Card answer)
- wenn timer = 0: Antwort = Input auf Karte
- PM leitet Antworten an GM weiter
- wenn alle Spieler geantwortet haben oder timer = 0
- gm.HandleAnswers(Card answer)
- GM speichert Antworten mit PID
- void HandleAnswers(Card answer)
- Bei Ablauf des Timers oder vollzähliger Antworten:
- Timer = 0
- Nächste Phase
Antwortphase:
-
GM verteilt über PM alle Antworten
- pm.BroadcastAnswers(List answers)
-
Antworten werden lokal dargestellt
- player.ShowAnswers(List answers)
-
Spieler stimmen ab ob Karten gleichwertig sind:
- pm.RegisterEqualVote(List vote);
-
PM leitet votes an GM weiter:
- gm.RegisterEqualVotes(List votes);
-
Spieler voten
- pm.RegisterVote(Player player, Card answer)
-
PM leitet Playervotes an GM weiter
- gm.RegisterVotes(List answers)
Punktephase:
- GM verteilt abhängig von Votes Punkte
- void GiveOutPoints()
- GM schickt neues Scoreboard an PM
- pm.BroadcastScores(List players)
- GM checkt, ob Frage(n) übrig, GM checkt, ob Rundenanzahl erreicht
- löscht Frage aus dem Set
- löscht Frage aus dem Set
- void RoundEnd()
Beim Zusammenfügen der einzelnen Branches traten jedoch einige Probleme auf, was die Funktionalität anbelangt.
Dadurch, dass jeder auf seinem eigenen Branch kleine Eigenheiten hatte, vor allem was die Klassen betrifft, die serialisiert werden müssen, kam es zu einigen Problemen. Hier wäre es eventuell besser gewesen, PlayerManager und GameManager in kleineren Abschnitten vorher schon zu mergen und zu testen.