diff --git a/includes/Butin.hpp b/includes/Butin.hpp new file mode 100644 index 0000000..40d2711 --- /dev/null +++ b/includes/Butin.hpp @@ -0,0 +1,23 @@ +#ifndef BUTIN +#define BUTIN + +#include + +class Butin { + friend std::ostream &operator<<(std::ostream &, const Butin &); + + // Plateau de jeu + + // Joueurs + +public: + Butin(); // constructor + virtual ~Butin(); // destructor + + Butin(const Butin &); // copy constructor + const Butin &operator=(const Butin &); // copy assignement +}; + +// Fonction d'initialisation du jeu + +#endif diff --git a/includes/Joueur.hpp b/includes/Joueur.hpp index 11fd2ab..b8fde06 100644 --- a/includes/Joueur.hpp +++ b/includes/Joueur.hpp @@ -1,13 +1,20 @@ #ifndef JOUEUR #define JOUEUR +#include "../includes/Piece.hpp" #include +#include class Joueur { friend std::ostream &operator<<(std::ostream &, const Joueur &); - // Couleur des pièces du joueur (pour les dames) - std::string couleur; + // Nom du joueur + std::string nom; + + // Pièces du joueur + // Pour le butin, tout simplement les pièces que le joueur gagne. + // Pour les autres jeux, peut être uniquement les pieces sur le plateau. + std::vector pieces; public: Joueur(); // constructor @@ -15,6 +22,11 @@ public: Joueur(const Joueur &); // copy constructor const Joueur &operator=(const Joueur &); // copy assignement + + // Ajoute une pièce à la liste de pièces du joueur + void ajoutPiece(Piece *piece) { pieces.push_back(piece); } + + // Fonction qui supprime une pièce de la liste de pièces du joueur }; #endif diff --git a/includes/Mouvement.hpp b/includes/Mouvement.hpp index 3115752..a572228 100644 --- a/includes/Mouvement.hpp +++ b/includes/Mouvement.hpp @@ -6,8 +6,11 @@ class Mouvement { friend std::ostream &operator<<(std::ostream &, const Mouvement &); - // (jeu des dames) Coordonnées du déplacement, source et destination. (Selon - // la modélisation du plateau ?) + // Coordonnées du déplacement, source + int sourceX, sourceY; + + // Coordonnées du déplacement, destination + int destX, destY; public: Mouvement(); // constructor diff --git a/includes/Piece.hpp b/includes/Piece.hpp index 0dcf1cd..fe5a877 100644 --- a/includes/Piece.hpp +++ b/includes/Piece.hpp @@ -6,18 +6,29 @@ class Piece { friend std::ostream &operator<<(std::ostream &, const Piece &); - // Couleur de la pièce (peut-être à formaliser, juste blanc ou noir pour les - // dames) - std::string couleur; - // Type de la pièce (pion ou dame pour les dames) - std::string type; + // Couleur de la pièce ou type d'animal pour Safari par ex + std::string categorie; public: - Piece(); // constructor - virtual ~Piece(); // destructor + Piece(std::string categorie); // constructor + virtual ~Piece(); // destructor Piece(const Piece &); // copy constructor const Piece &operator=(const Piece &); // copy assignement }; +class PieceDames : public Piece { +public: + PieceDames(std::string categorie); + virtual ~PieceDames(); +}; + +class PieceButin : public Piece { + int points; + +public: + PieceButin(std::string categorie); + virtual ~PieceButin(); +}; + #endif diff --git a/includes/Plateau.hpp b/includes/Plateau.hpp index 2f7d7b0..91bab05 100644 --- a/includes/Plateau.hpp +++ b/includes/Plateau.hpp @@ -1,18 +1,21 @@ #ifndef PLATEAU #define PLATEAU +#include "../includes/Piece.hpp" #include class Plateau { friend std::ostream &operator<<(std::ostream &, const Plateau &); - // Il faudrait sûrement un tableau pour initialiser le plateau, mais je suis - // pas sûr du type de l'attribut. J'avais pensé à un tableau de Piece (avec la - // case à null si aucune piece dessus), je sais pas si c'est une bonne idée. + // Taille du plateau + int taille; + + // Tableau représentant le plateau de jeu + Piece ***plateau; public: - Plateau(); // constructor - virtual ~Plateau(); // destructor + Plateau(int taille); // constructor + virtual ~Plateau(); // destructor Plateau(const Plateau &); // copy constructor const Plateau &operator=(const Plateau &); // copy assignement diff --git a/includes/Safari.hpp b/includes/Safari.hpp new file mode 100644 index 0000000..5505bd2 --- /dev/null +++ b/includes/Safari.hpp @@ -0,0 +1,23 @@ +#ifndef SAFARI +#define SAFARI + +#include + +class Safari { + friend std::ostream &operator<<(std::ostream &, const Safari &); + + // Plateau de jeu + + // Joueurs + +public: + Safari(); // constructor + virtual ~Safari(); // destructor + + Safari(const Safari &); // copy constructor + const Safari &operator=(const Safari &); // copy assignement +}; + +// Fonction d'initialisation du jeu + +#endif diff --git a/src/Butin.cpp b/src/Butin.cpp new file mode 100644 index 0000000..fc07df9 --- /dev/null +++ b/src/Butin.cpp @@ -0,0 +1,15 @@ +#include "../includes/Butin.hpp" + +Butin::Butin() { std::cout << "butin\n"; } + +Butin::~Butin() {} + +Butin::Butin(const Butin &) {} + +const Butin &Butin::operator=(const Butin &src) { + if (this == &src) { + return *this; + } + + return *this; +} diff --git a/src/Piece.cpp b/src/Piece.cpp index 98c1185..05ce20a 100644 --- a/src/Piece.cpp +++ b/src/Piece.cpp @@ -1,6 +1,6 @@ #include "../includes/Piece.hpp" -Piece::Piece() { std::cout << "pièce\n"; } +Piece::Piece(std::string categorie) { std::cout << "pièce\n"; } Piece::~Piece() {} diff --git a/src/Plateau.cpp b/src/Plateau.cpp index 6837500..9fd93ab 100644 --- a/src/Plateau.cpp +++ b/src/Plateau.cpp @@ -1,6 +1,14 @@ #include "../includes/Plateau.hpp" -Plateau::Plateau() { std::cout << "plateau\n"; } +Plateau::Plateau(int taille) { + plateau = new Piece **[taille]; + for (int i = 0; i < taille; i++) { + plateau[i] = new Piece *[taille]; + for (int j = 0; j < taille; j++) { + plateau[i][j] = nullptr; + } + } +} Plateau::~Plateau() {} diff --git a/src/Safari.cpp b/src/Safari.cpp new file mode 100644 index 0000000..e194c91 --- /dev/null +++ b/src/Safari.cpp @@ -0,0 +1,15 @@ +#include "../includes/Safari.hpp" + +Safari::Safari() { std::cout << "safari\n"; } + +Safari::~Safari() {} + +Safari::Safari(const Safari &) {} + +const Safari &Safari::operator=(const Safari &src) { + if (this == &src) { + return *this; + } + + return *this; +}