Το link για την εργασία στο users είναι(δεν έχει γίνει η σύνδεση με τη βάση μόνο): https://users.iee.ihu.gr/~it154465/ADISE20_ARSEN4L/login.php
Το score4 παίζεται ως εξής: Παίζεται με 2 πάιχτες. Κάθε παίχτης διαλέγει ένα χρώμα και το τοποθετεί στον πίνακα(7 στήλες και 6 γραμμές συνήθως).
Οι κανόνες είναι οι: Σκοπός του παιχνιδιού είναι να σχηματιστεί μια 4αδα από το ίδιο χρώμα σε σειρά είτε κάθετα είτε οριζόντια είτε διαγώνια.
Η βάση μας κρατάει τους εξής πίνακες και στοιχεία: board, users, game_status, board_empty, players
Η εφαρμογή απαπτύχθηκε μέχρι το τελικό της σημείο . Δηλαδή το παιχνίδι σταματάει όταν βρεθεί ένας νικητής έχοντας σχηματίσει μια 4άδα είτε οριζόντια είτε κάθετα έιτε διαγώνια.
Έχουν υλοποιηθεί από τα ζητούμενα τα εξής:
- Αρχικοποίηση σύνδεσης-authentication (ακόμη και χωρίς password).
- Έλεγχος κανόνων παιχνιδιού.
- Αναγνώριση σειράς παιξιάς.
- Αναγνώριση DeadLock (δεν υπάρχει κίνηση ή τέλος παιχνιδιού).
- Υλοποίηση WebAPI.
- Το APΙ πρέπει να χρησιμοποιεί json μορφή για τα δεδομένα.
- Η κατάσταση του παιχνιδιού αποθηκεύεται πλήρως σε mysql.
- Ο πρώτος παίκτης αρχικοποιεί το board και περιμένει αντίπαλο όπου χρειάζεται.
Bonus:
- Έλεγχος timeout → ακύρωση παίκτη.
- "Γραφική εμφάνιση"(GUI) του board.
Προγραμματιστής 1: Κελέσμητος Ευθύμιος it154465 (SQL, Javascript, PHP)
Προγραμματιστής 2: Μπαλάφας-Καραμάτσικος Δημήτριος it164710 (SQL, CSS, API)
GET /board/
Επιστρέφει το Board.
POST /board/
Αρχικοποιεί το Board, δηλαδή το παιχνίδι. Γίνονται reset τα πάντα σε σχέση με το παιχνίδι. Επιστρέφει το Board.
GET /board/piece/:x/:y/
Κάνει την κίνηση του πιονιού από την θέση x,y στην νέα θέση. Προφανώς ελέγχεται η κίνηση αν είναι νόμιμη καθώς και αν είναι η σειρά του παίκτη να παίξει με βάση το token. Επιστρέφει τα στοιχεία από το Board με συντεταγμένες x,y. Περιλαμβάνει το χρώμα του πιονιού και τον τύπο.
PUT /board/piece/:x/:y/
Json Data:
Field | Description | Required |
---|---|---|
x |
Η νέα θέση x | yes |
y |
Η νέα θέση y | yes |
Επιστρέφει τα στοιχεία από το Board με συντεταγμένες x,y. Περιλαμβάνει το χρώμα του πιονιού.
GET /players/:p
Επιστρέφει τα στοιχεία του παίκτη p ή όλων των παικτών αν παραληφθεί. Το p μπορεί να είναι 'R' ή 'Y'.
PUT /players/:p
Json Data:
Field | Description | Required |
---|---|---|
username |
Το username για τον παίκτη p. | yes |
color |
To χρώμα που επέλεξε ο παίκτης p. | yes |
Επιστρέφει τα στοιχεία του παίκτη p και ένα token. Το token πρέπει να το χρησιμοποιεί ο παίκτης καθόλη τη διάρκεια του παιχνιδιού.
GET /status/
Επιστρέφει το στοιχείο Game_status.
Το board είναι ένας πίνακας, ο οποίος στο κάθε στοιχείο έχει τα παρακάτω:
Attribute | Description | Values |
---|---|---|
x |
H συντεταγμένη x του κύκλου | 1..6 |
y |
H συντεταγμένη y του κύκλου | 1..7 |
color |
To χρώμα του κύκλου | 'R','Y' |
O κάθε παίκτης έχει τα παρακάτω στοιχεία:
Attribute | Description | Values |
---|---|---|
username |
Όνομα παίκτη | String |
piece_color |
To χρώμα που παίζει ο παίκτης | 'R','Y' |
token |
To κρυφό token του παίκτη. Επιστρέφεται μόνο τη στιγμή της εισόδου του παίκτη στο παιχνίδι | HEX |
last_action |
Τύπου timestamp . Δείχνει τη χρονική στιφμή της τελευταίας κίνησης του παίχτη | timestamp |
H κατάσταση παιχνιδιού έχει τα παρακάτω στοιχεία:
Attribute | Description | Values |
---|---|---|
status |
Κατάσταση | 'not active', 'initialized', 'started', 'ended', 'aborded' |
p_turn |
To χρώμα του παίκτη που παίζει | 'R','Y',null |
result |
To χρώμα του παίκτη που κέρδισε | 'R','Y',null |
last_change |
Τελευταία αλλαγή/ενέργεια στην κατάσταση του παιχνιδιού | timestamp |