background image

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.