84
απαντήσεις ο
server
αναμένει για απαντήσεις από τους
clients
. Οι απαντήσεις
τους έχουν την μορφή
ANSWER
(αριθμός που αντιστοιχεί στην επιλογή του
χρήστη). Από την απάντηση ξεχωρίζονται το ψευδώνυμο του παίκτη που
απέστειλε την απάντηση και η ίδια η απάντηση. Ελέγχεται για την ορθότητα
της και ενημερώνονται όλοι οι
clients
(μέσα από ένα
for loop
). Αν στις
ρυθμίσεις του παιχνιδιού έχει οριστεί ότι θα φαίνεται ποιος δίνει σωστή ή
λάθος απάντηση σε όλους τότε το μήνυμα έχει την μορφή
RESULT::NICKNAME
, με το
RESULT
να λαμβάνει τιμές
CORRECT
ή
ERROR
. Σε διαφορετική περίπτωση το μήνυμα θα έχει μορφή
RESULT::N/A.
Για κάθε παίκτη που δίνει ορθή απάντηση προστίθενται στο χαρακτηριστικό
score
του αντίστοιχου αντικειμένου
Player
η τιμή που αντιστοιχεί σε κάθε
σωστή απάντηση. Με την ολοκλήρωση του χρόνου αναμονή αποστέλλονται
σε όλους τους
clients
τα σκορ όλων των παικτών.
Οι
buzz
ερωτήσεις αντιμετωπίζονται διαφορετικά από τον
server
. Όταν
δεχθεί
BUZZ
μήνυμα από κάποιον
client
, αναστέλλει την λειτουργία του
thread
μέχρι ο χρήστης να επιλέξει στο
ListView
απάντησε σωστά. Την χρονική
στιγμή αυτή επανενεργοποιείται το
thread
. Όποιος επιλεγεί από το
listview
λαμβάνει το σκορ για σωστή απάντηση.
Πριν την αποστολή κάθε ερώτησης γίνεται έλεγχος αν κάποιος από
τους
clients
έχει αποσυνδεθεί. Αν αυτό έχει συμβεί τότε διακόπτεται η
σύνδεση με αυτόν και στην θέση του στο
ListView
καταχωρείται η ένδειξη
DISCONNECTED
. Επίσης το
textbox
που φαίνεται πόσοι χρήστες είναι
συνδεδεμένοι ενημερώνεται με το νέο πλήθος χρηστών.
Όταν ολοκληρωθεί η διαδικασία και τις τελευταίας ερώτησης,
δημιουργείται ένα αντικείμενο
MyDBHandler
ώστε να καταχωρηθούν με
κατάλληλα
queries
τα σκορ των συμμετεχόντων στην βάση δεδομένων.
Παράλληλα αποστέλλονται τα αποτελέσματα στους
clients
. Τέλος
διακόπτονται οι συνδέσεις με τους
clients
, τερματίζεται το
socket
και το
αντίστοιχο
thread
και ενεργοποιείται το
ConfigurationActivity.