Skip to content

vasiliskiosses97/ADISE20_ARSEN4L

Repository files navigation

ADISE20_ARSEN4L

Το 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)

Περιγραφή API

Methods

Board

Ανάγνωση Board

GET /board/

Επιστρέφει το Board.

Αρχικοποίηση Board

POST /board/

Αρχικοποιεί το Board, δηλαδή το παιχνίδι. Γίνονται reset τα πάντα σε σχέση με το παιχνίδι. Επιστρέφει το Board.

Piece

Ανάγνωση Θέσης/Πιονιού

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. Περιλαμβάνει το χρώμα του πιονιού.

Player

Ανάγνωση στοιχείων παίκτη

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 πρέπει να το χρησιμοποιεί ο παίκτης καθόλη τη διάρκεια του παιχνιδιού.

Status

Ανάγνωση κατάστασης παιχνιδιού

GET /status/

Επιστρέφει το στοιχείο Game_status.

Entities

Board


Το board είναι ένας πίνακας, ο οποίος στο κάθε στοιχείο έχει τα παρακάτω:

Attribute Description Values
x H συντεταγμένη x του κύκλου 1..6
y H συντεταγμένη y του κύκλου 1..7
color To χρώμα του κύκλου 'R','Y'

Players


O κάθε παίκτης έχει τα παρακάτω στοιχεία:

Attribute Description Values
username Όνομα παίκτη String
piece_color To χρώμα που παίζει ο παίκτης 'R','Y'
token To κρυφό token του παίκτη. Επιστρέφεται μόνο τη στιγμή της εισόδου του παίκτη στο παιχνίδι HEX
last_action Τύπου timestamp . Δείχνει τη χρονική στιφμή της τελευταίας κίνησης του παίχτη timestamp

Game_status


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

About

Simple connect 4 game

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published