Open lSoleyl opened 9 years ago
Ab jetzt können sich die Knoten auch beschießen und tun das so lange, bis alle Felder einmal beschossen wurden und anschließend stürzt der 1. Spieler ab, weil er kein Ziel mehr hat.
D.h hier müsste
Das Ziel weiß aber gar nichts von dieser Mitteilung. D.h. das Spiel läuft munter weiter und iwie scheint es so, als würden dann alle nacheinander(wenn das Spiel ohne Verzögerung abläuft, dann ist das praktisch gleichzeitig) behaupten, dass sie gewonnen haben.
Wie wird das dann entschieden, wer tatsächlich gewonnen hat?
Das wird dann wahrscheinlich so gelöst werden, dass der Knoten, der den Sieg melden will, einfach seinen Chord-Knoten schließt und damit kein Broadcast mehr vollständig durchlaufen kann und das Spiel dadurch stoppt.
Dann hagelt es Chord-Exceptions vermute ich mal? Lässt sich das von einem Absturz eines Nodes unterscheiden?
Gute Frage, da bei Wegfall eines Knotes das Spiel aber nicht mehr richtig spielbar ist, müssen wir das eigentlich nicht unterscheiden und können einfach in beiden Fällen das Spiel beenden.
Ich habe implementiert, dass unser Spiel auf jeden Fall stoppen kann, sobald uns bekannt ist, dass ein Spieler verloren hat. Auch können wir jetzt erkennen, dass wir selbst verloren haben. Beim Test mit drei Spielern konnten alle so beenden.
Es fehlt allerdings noch, dass wir auf den Verlierer schießen bevor wir Beenden. Auch besteht die Auswertung des Spiels bis jetzt nur aus dem Print der History.
Was mir noch etwas unklar ist, ist wie wir allen mitteilen, dass wir gewonnen haben. In der Aufgabenstellung heißt es ja, dass man erstmal auf das Ziel schießen muss (auch wenn es bereits zerstört ist) und dann kann man sagen, dass man gewonnen hat.
Das Ziel weiß aber gar nichts von dieser Mitteilung. D.h. das Spiel läuft munter weiter und iwie scheint es so, als würden dann alle nacheinander(wenn das Spiel ohne Verzögerung abläuft, dann ist das praktisch gleichzeitig) behaupten, dass sie gewonnen haben.
Wie wird das dann entschieden, wer tatsächlich gewonnen hat?