1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| using Hand = std::vector<Carte>;
class Player //Classe avec les infos du player
{
public:
//Construteurs
Player();
std::string name();
//Méthodes
virtual void place_bet(const Hand& h, std::vector<Bet>& bets) = 0; // une fonction abstraite
virtual void choose_cards_to_change(const Hand& h) = 0; // une fonction abstraite
protected:
Player(const std::string& name) : name_(name) {} // le constructeur est protégé; il ne faut pas instancier directement une classe abstraite
private:
std::string name_; //Nom du joueur à qui appartient cette classe
unsigned int money_; //Montant des gains actuels du joueur
bool fold_; //True si le joueur est couché
};
class Bet : public Player //Classe pour la partie enchere
{
public:
//Construteurs
Bet();
Bet(unsigned int bet);
//Méthodes
void place_bet(const Hand& h, std::vector<Bet>& bets);
private:
unsigned int bet_; //Montant de l'enchere
};
class Game //Classe du déroulement d'une partie à completer une fois la classe player bien avancé
{
public:
//Construteurs
Game();
Game(unsigned int bigBlind, unsigned int nbTurn, bool changeCard);
//Méthodes
private:
unsigned int bigBlind_; //Montant de la grosse bling, minimum à encherir
unsigned int nbTurn_; //Nombre de tour d'enchere déjà effectué dans la partie
bool changeCard_; //True si l'échange de carte a déjà été effectué
}; |
Partager