Skip to content

iee-ihu-gr-course1941/ADISE24_011873

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Εργασία Εξαμήνου στο πλαίσιο του μαθήματος Ανάπτυξη Διαδικτυακών Συστημάτων και Εφαρμογών. Δημιουργία εφαρμογής παιχνιδιού "Blokus"

Μιλτιάδης Παρχαρίδης ΑΜ 011873 Καθηγητής: Αντώνης Σιδηρόπουλος

Περιγραφή εφαρμογής

Η εφαρμογή Blokus αποτελεί την υλοποίηση σε web (PHP/MySQL) του γνωστού επιτραπέζιου παιχνιδιού Blokus. Πρόκειται για ατομική εργασία χωρίς GUI. Τα αιτήματα των παικτών αποστέλλονται στον web server μέσω Postman και μετά την κατάλληλη επεξεργασία τυπώνεται το αποτέλέσμα στην έξοδο. Ο χρήστης πραγματοποιεί εγγραφή, στη συνέχεια μπορεί να συνδεθεί με όνομα χρήστη και κωδικό και να επιλέξει νέο παιχνίδι ή να επαναφέρει κάποιο προηγούμενο. Πραγματοποιεί τις κινήσεις μαζί με τον αντίπαλο και η εφαρμογή ανακυρήσσει τον νικήτή καταχωρώντας το αποτέλεσμα στη βάση μαζί με το σκορ και τα συνολικά παιχνίδια. Υπάρχει επίσης και η δυνατότητα της αποσύνδεσης του χρήστη. Η εφαρμογή χρησιμοποιεί session variables και τα δεδομένα που αποστέλλονται είναι σε μορφή JSON.

Παραδοχές

Η εφαρμογή δεν υλοποιήθηκε σε πλήρη έκταση λόγω χρόνου. Ωστόσο, η εφαρμογή ικανοποιεί πλήρως το βασικό σενάριο. Θεωρήθηκε ότι οι επιπλέον λειτουργίες που λείπουν δεν θα επιδείκνυαν περεταίρω γνώση του μαθήματος και γι’ αυτό χάριν χρόνου δεν υλοποιήθηκαν.

Περιγραφή API

Το API περιέχει μία switch με ποικίλα cases με τα παρακάτω cases: register: Ο χρήστης εγγράφεται δίνοντας ως παραμέτρους ένα username και password.

login: Ο χρήστης συνδέεται δίνοντας το username και password τα οποία αντιπαραβάλλονται στη βάση και επιστρέφεται ένα userToken σε μορφή UUID το οποίο θα χρησιμεύει σε κάθε αίτημά του.

createGame: Δημιουργεί ένα παιχνίδι μεταξύ δύο παικτών. Παίρνει παραμέτρους τα 2 user ID των παικτών καθώς και τα token τους. Επιστρέφει το game id, το game Token, τυπώνει το board, αναφέρει τίνος σειρά είναι να παίξει (παίκτης 1) και εκτυπώνει σε γραφική μορφή το σχήμα από τα διαθέσιμα κομμάτια του με τα ID τους.

makeMove: Τοποθετεί ένα κομμάτι στο board. Δέχεται ως παραμέτρους το game id, το ID του παίκτη (το οποίο επαληθεύει - αναγνώρισης παιξιάς), το user token, το ID του κομματιού, και τις συντεταγμένες x και y που επιθυμεί ο παίκτης να βάλει το κομμάτι. Τυπώνει στη συνέχεια το νέο board με το νέο κομμάτι επάνω στο χρώμα του παίκτη (παίκτης 1 κόκκινο, παίτκςη 2 μπλε) και εμφανίζει μήνυμα ότι είναι η σειρά του επόμενου παίκτη τυπώνοντας τα διαθέσιμα κομμάτι του.

printCurrentBoard: Τυπώνει το board ενός παιχνιδιού. Δέχεται ως παράμετρο το game id. Χρησιμεύει σε περίπτωση που κάποιος παίκτης θέλει να δει πως έπαιξαν κάποιοι άλλοι το παιχνίδι τους. calculateWinner: Υπολογίζει τον νικητή. Καλείται μόνο από τον παίκτη 1 ή παίκτη 2 και αφού μετρήσει τους πόντους τους, υπολογίζει το νικητή, τον ανακοινώνει, προσθέτει +1 στα παιχνίδια που έπαιξαν οι δύο παίκτες, ενημερώνει τους συνολικούς τους πόντους και κάνει invalidate το παιχνίδι καταχωρώντας στο game token την τιμή FINISHED. Δέχεται ως παραμέτρους το game id και το user token.

resumeGame: Επαναφέρει για παίξιμο ένα παιχνίδι που έμεινε στη μέση. Γίνεται έλεγχος πρωτίστως εάν έχει τερματιστεί. Μόνο οι παίκτες που έπαιξαν μπορούν να το επαναφέρουν. Μετά την επαναφορά του, τυπώνεται το board, ανακοινώνεται ο παίκτης που πρόκειται να παίξει και τυπώνονται τα διαθέσιμα κομμάτια του. Δέχεται ως παραμέτρους το game token και το player token.

logout: Αποσυνδέει τον παίκτη διαγράφοντας το user token του (null) και εμφανίζει μήνυμα αποσύνδεσης. Δέχεται ως παράμετρο το player token του.

Ελπίζουμε να σας αρέσει!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages