lSoleyl / ttvp

P2P Schiffe versenken mit Open-Chord
0 stars 0 forks source link

Wie teilen wir mit, dass wir gewonnen haben? Wann ist das Spiel vorbei? #2

Open lSoleyl opened 9 years ago

lSoleyl commented 9 years ago

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?

lSoleyl commented 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.

pasndrp commented 9 years ago

Dann hagelt es Chord-Exceptions vermute ich mal? Lässt sich das von einem Absturz eines Nodes unterscheiden?

lSoleyl commented 9 years ago

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.

pasndrp commented 9 years ago

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.