Μπορείτε να κατεβάσετε τοπικά ή να επισκευτείτε την σελίδα: https://users.it.teithe.gr/~it185320/ADISE21_RPSLS/www/
- Apache2
- Mysql Server
- php
-
Κάντε clone το project σε κάποιον φάκελο
$ https://github.com/iee-ihu-gr-course1941/ADISE21_RPSLS.git
-
Βεβαιωθείτε ότι ο φάκελος είναι προσβάσιμος από τον Apache Server. πιθανόν να χρειαστεί να καθορίσετε τις παρακάτω ρυθμίσεις.
-
Θα πρέπει να δημιουργήσετε στην Mysql την βάση με όνομα 'rpsls' και να φορτώσετε σε αυτήν την βάση τα δεδομένα από το αρχείο schema.sql
-
Θα πρέπει να φτιάξετε το αρχείο lib/config_local.php το οποίο να περιέχει:
<?php
$DB_PASS = 'κωδικός';
$DB_USER = 'όνομα χρήστη';
?>
Το Rock, Paper, Scissors, Lizard, Spock παίζεται ως εξής:
- Scissors cuts Paper
- Paper covers Rock
- Rock crushes Lizard
- Lizard poisons Spock
- Spock smashes Scissors
- Scissors decapitates Lizard
- Lizard eats Paper
- Paper disproves Spock
- Spock vaporizes Rock
- (and as it always has) Rock crushes Scissors
Οι κανόνες είναι οι εξής :
- Αν φύγει/παραδοθεί ο αντίπαλος, νικάς.
- Αν είναι ανενεργός ή κάνει timeout ο αντίπαλος, νικάς.
- Αν νικήσεις ή χάσεις, παίρνεις και χάνεις ανάλογα πόντους.
- Αν το παιχνίδι καταλήξει σε ισοπαλία, δεν παίρνει κανένας πόντο.
Η βάση μας κρατάει τους εξής πίνακες και στοιχεία:
- board
- board_empty
- game_status
- players
Alexandros Magos - 185320 Dimitris koutsoupias - 185204
GET /board/
Επιστρέφει το Board.
POST /board/
Αρχικοποιεί το Board, δηλαδή το παιχνίδι. Γίνονται reset τα πάντα σε σχέση με το παιχνίδι. Επιστρέφει το Board.
POST /board/make_move/
Json Data:
Field | Description | Required |
---|---|---|
choice |
Την επιλογή του παίχτη. (1-5) | yes |
player_number |
Ο αριθμός του παίχτη που έκανε την κίνηση. | yes |
Στέλνει την επιλογή που διάλεξε ο χρήστης(1-5) και ποιος player την έκανε στο stored procedure (make_move). |
POST /board/play_again/
Καλεί την stored_procedure ''play_again', για να ξανα παίξεις μαζί με τον ίδιο αντίπαλο
GET /players/
Επιστρέφει τα username όλων των παικτών και τα παιρνάμε στην μεταβλητή players.
PUT /players/
Json Data:
Field | Description | Required |
---|---|---|
username |
Το username για τον παίκτη. | yes |
player_number |
Τον player που επέλεξε ο παίκτης. | yes |
Καλείτε όταν ο παίχτης κάνει login και επιστρέφει τα στοιχεία του παίκτη και ένα token. Το token πρέπει να το χρησιμοποιεί ο παίκτης καθόλη τη διάρκεια του παιχνιδιού.
GET /status/
Επιστρέφει το στοιχείο Game_status.
Το board είναι ένας πίνακας, ο οποίος στο κάθε στοιχείο έχει τα παρακάτω:
Attribute | Description | Values |
---|---|---|
match_id |
Το id του match | 1..8 |
p1_choice |
Η επιλογή/κίνηση του παίχτη 1 | 1..5 |
p2_choice |
Η επιλογή/κίνηση του παίχτη 2 | 1..5 |
O κάθε παίκτης έχει τα παρακάτω στοιχεία:
Attribute | Description | Values |
---|---|---|
username |
Όνομα παίκτη | String |
player_number |
Τον αριθμό που διάλεξε ο χρήστης να παίξει ας | 'p1/p2' |
token |
To κρυφό token του παίκτη. Επιστρέφεται μόνο τη στιγμή της εισόδου του παίκτη στο παιχνίδι | HEX |
last_action |
To χρώμα που παίζει ο παίκτης | 'B','W' |
H κατάσταση παιχνιδιού έχει τα παρακάτω στοιχεία:
Attribute | Description | Values |
---|---|---|
status |
Κατάσταση | 'not active', 'initialized', 'started', 'ended', 'aborded' |
p_turn |
Ποιου παίκτη είναι η σειρά | 'p1','p2' |
result |
To player number του παίκτη που κέρδισε ή "D" αν ήτανε ισοπαλία | 'p1','p2', 'D' |
last_change |
Τελευταία αλλαγή/ενέργεια στην κατάσταση του παιχνιδιού | timestamp |