diff --git a/includes/Joueur.hpp b/includes/Joueur.hpp index 875faaf..3384abe 100644 --- a/includes/Joueur.hpp +++ b/includes/Joueur.hpp @@ -32,4 +32,5 @@ public: const std::string &getNom() const; // Fonction qui supprime une pièce de la liste de pièces du joueur + bool retirePiece(Piece *piece); }; diff --git a/includes/Piece.hpp b/includes/Piece.hpp index e90d4e2..0537ebc 100644 --- a/includes/Piece.hpp +++ b/includes/Piece.hpp @@ -23,6 +23,4 @@ public: // Fonction de déplacement bool moveTo(const int destX, const int destY); - - // Fonction de prise de pièce }; diff --git a/src/Joueur.cpp b/src/Joueur.cpp index 5730662..e02c95a 100644 --- a/src/Joueur.cpp +++ b/src/Joueur.cpp @@ -1,5 +1,7 @@ #include "../includes/Joueur.hpp" +#include + Joueur::Joueur() { std::cout << "joueur\n"; } @@ -43,3 +45,14 @@ const std::vector Joueur::getPieces() const { const std::string &Joueur::getNom() const { return nom; } + +bool Joueur::retirePiece(Piece *piece) { + auto it = std::find(pieces.begin(), pieces.end(), piece); + const bool found = it != pieces.end(); + + if (found) { + pieces.erase(it); + } + + return found; +} diff --git a/src/Piece.cpp b/src/Piece.cpp index 168cbc1..39b9b30 100644 --- a/src/Piece.cpp +++ b/src/Piece.cpp @@ -20,3 +20,16 @@ std::ostream &operator<<(std::ostream &out, const Piece &data) { out << '"' << data.categorie << '"'; return out; } + +bool Piece::moveTo(const int destX, const int destY) { + if (destX < 0 || destY < 0) { + return false; + } + + // Note: On vérifie pas si la pièce sort du plateau par rapport à la taille + // du plateau (on a pas l'info ici?) + + x = destX; + y = destY; + return true; +}