ADISE22_GetBluffedHAHA

Table of Contents

Εγκατάσταση

Απαιτήσεις

  • Apache2
  • Mysql Server
  • php
  • html
  • javascript
  • css

Συντελεστές

  • Καλούδης Αλέξανδρος
  • Αποστολίδης Μιχαήλ
  • Παυλίδης Γεώργιος

Οδηγίες Εγκατάστασης

  • Κάντε clone το project σε κάποιον φάκελο
    $ git clone https://https://github.com/iee-ihu-gr-course1941/ADISE22_GetBluffedHAHA

  • Βεβαιωθείτε ότι ο φάκελος είναι προσβάσιμος από τον Apache Server. πιθανόν να χρειαστεί να καθορίσετε τις παρακάτω ρυθμίσεις.

  • Θα πρέπει να δημιουργήσετε στην Mysql την βάση με όνομα 'bluff_db' και να φορτώσετε σε αυτήν την βάση τα δεδομένα από το αρχείο bluffdb.sql

  • Θα πρέπει να φτιάξετε το αρχείο lib/config_local.php το οποίο να περιέχει:

    <?php
	$DB_PASS = 'κωδικός';
	$DB_USER = 'όνομα χρήστη';
    ?>

Περιγραφή Παιχνιδιού

Αριθμός παικτών: 3

Στόχος του κάθε παίκτη είναι να ξεφορτωθεί όλες του τις κάρτες από το χέρι του. Ο πρώτος που θα καταφέρει να αρχίσει το γύρο του χωρίς κάρτες νικάει.

Στο γύρο του ο παίκτης επιλέγει από το χέρι του έναν αριθμό καρτών και τις παίζει στο ταμπλό ανάποδα. Ταυτόχρονα αναφέρει στους αντιπάλους ότι οι κάρτες που έπαιξε είναι όλες ίδιος αριθμός ή φιγούρα και τους λέει και ποιός είναι. Όμως δεν χρειάζεται να πει την αλήθεια, μπόρει να μπλοφάρει. Οι υπόλοιποι παίκτες είτε να πούν "Μπλόφα" ή να συνεχίσουν παίζοντας με τη σείρα και αυτοί κάρτες από το χέρι τους που είναι ιδιός αριθμός/φιγούρα (φυσικά και οι ίδιοι μπορούν να μπλοφάρουν!). Εάν περάσει μια γύρα απ'όλους τους πάικτες χώρις να παίξει κάποιος κάρτα ή να πεί μπλόφα τότε οι κάρτες από το ταμπλό πάνε στα σκάρτα και η σειρά πάει στον επόμενο παίκτη.

Εάν κάποιος πεί "Μπλόφα", τότε γυρνάνε οι κάρτες που έπαιξε ο τελευταίος παίκτης ώστε να είναι φανερά σε όλους. Άμα όντως μπλόφαρε, τότε παίρνει στο χέρι του όλες τις κάρτες από το ταμπλό. Αλλιώς, άμα οι κάρτες που έπαιξε είναι αυτό που είπε, τότε αυτός που ανακάλεσε "Μπλόφα" παίρνει τις κάρτες από το ταμπλό στο χέρι του.

Ειδικοί κανόνες: Οι δύο Τζόκερ χρησιμοποιούνται σαν μπαλαντέρ και μπορούν να είναι οποιδήποτε άλλο χαρτι της τράπουλας.

Περιγραφή API

Methods

Card

Διάβασμα κάρτων

GET /card/read.php

Εμφανίζει όλες της κάρτες της τράπουλας

Διάβασμα συγκεκριμένης κάρτας

GET /card/read_single_carg.php?id=1

Εμφανίζει τη κάρτα με id 1

GameTable

Δώσε κάρτα σε παίκτη

POST /gametable/add_card.php

Δίνει σε έναν παίκτη μια κάρτα, τα id των οποίων (player_id, card_id), βρίσκονται στο body του request

Παίξιμο κάρτας

PUT /gametable/play_card.php

Μια κάρτα από το χέρι του παίκτη παίζεται στο ταμπλό

Μάζεμα κάρτας

PUT /gametable/raise_card_from_table.php

Μια κάρτα από το ταμπλό επιστρέφεται στο χέρι ενός παίκτη

Κάψιμο κάρτας

PUT /gametable/burn_card_from_table.php

Μια κάρτα απο το ταμπλό πάει στα σκάρτα

Εμφάνιση χεριού ενός παίκτη

GET /gametable/get_player_hand.php?player_id=1

Επιστρέφει το χέρι του παίκτη με id 1

Player

Προσθήκη νέου παίκτη

POST /player/add_new_player.php

Προσθέτει νέο παίκτη στον πίνακα με τους παίκτες με τα στοιχεία που υπάρχουν στο body του request

Διαγραφή παίκτη

POST /player/add_new_player.php?id=1

Διαγραφή παίκτη με id 1

Εμφάνιση συγκλεκριμένου πάικτη

GET /player/read_single_player.php?id=1

Επιστρέφει τον παίκτη με id 1

Ενημέρωση παίκτη

POST /player/update_player.php?id=1

Ενημερώνει τον παίκτη με id 1

Εμφάνιση όλων των παικτών

GET /player/read.php

Επιστρέφει όλους τους παίκτες του πίνακα players

GameCondition

Δημιουργία παιχνιδιού

POST /gamecondition/create_game.php

Δημιουργεί νέο παιχνίδι, προσθέτοντας νέο entry στον πίνακα game_condition

Ενημέρωση παιχνιδιού

PUT/gamecondition/change_status.php

Ενημερώνει τη κατάσταση του παιχνιδιού

CheckBluff

Δείξε τις τελευταίες κάρτες που παίχτηκαν

GET /checkbluff/get_last_played.php

Επιστρέφει τα στοιχεία του πίνακα check_bluff, ο οποίος περιέχει τις κάρτες που έπαιξε ο τελευταίος παίκτης

Ενημέρωσε ποιές κάρτες παίχτηκαν τελευταίες

POST /checkbluff/set_last_played.php

Προσθέτει τις κάρτες που έπαιξε ο παίκτης στον πίνακα check_bluff, ώστε να γίνεται έλεγχος όταν κάποιος πει "Μπλόφα"

Entities

cards


Το cards είναι ένας πίνακας, ο οποίος περιέχει όλες τις κάρτες μίας κανονικής τράπουλας 52 καρτών.

Attribute Description Values
colour Το χρώμα/σύμβολο της κάρτας 'HEART','DIAMOND','SPADE','CLOVER'
number Ο αριθμός/φιγούρα της κάρτας 'A','2','3','4','5','6','7','8',
'9','10','JACK','QUEEN','KING',
'JOKER1','JOKER2'

game_table


Πίνακας όπου κάθε σειρά είναι κάρτα για το κάθε χέρι των παικτών και για τις κάρτες στα σκάρτα και στο ταμπλό. Ταυτόχρονα εδώ γίνεται η σύνδεση των παικτών με το παιχνίδι στο οποίο βρίσκονται με τη χρήση ξένων κλειδιών.

Attribute Description Values
player_id Το id του παίκτη (ξένο κλειδί) Integer
game_condition_id Το id του παιχνιδιού (ξένο κλειδί) Integer
card_id Το id της κάρτας (ξένο κλειδί) η οποία Integer
μοιράστηκε στον παίκτη με το αντίστοιχο id Integer
burned Εάν η κάρτα είναι στα σκάρτα Boolean
ontable Εάν η κάρτα είναι στο ταμπλό Boolean

players


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

Attribute Description Values
name Όνομα παίκτη String
game_condition_id Αντιστοίχιση με τον πίνακα game_condition Integer
που δηλώνει σε ποιό παιχνίδι βρίσκεται

game_condition


Πίνακας με τα παιχνίδια και τη κατάσταση τους

Attribute Description Values
p_turn Ο παίκτης ο οποίος πάιζει αυτό το γύρο Integer
status Η κατάσταση του παιχνιδιού 'STARTED','ENDED','ABORTED'
result Δείχνει το αποτέλεσμα του παιχνιδιού String

check_bluff


Πίνακας που κρατάει το τελευταίο χέρι που έχει παικτεί, τα στοιχεία του οποίου ελέγχονται σε περίπτωση μπλόφας

Attribute Description Values
card_id Το id για τη κάρτα που παίχτηκε Integer
player_id Ο παίκτης που την έριξε Integer