diff --git a/includes/Dames/Dames.hpp b/includes/Dames/Dames.hpp index 2f140ae..1f2a557 100644 --- a/includes/Dames/Dames.hpp +++ b/includes/Dames/Dames.hpp @@ -1,6 +1,7 @@ #pragma once #include "PlateauDames.hpp" +#include "PieceDames.hpp" class Dames { friend std::ostream &operator<<(std::ostream &, const Dames &); @@ -24,7 +25,5 @@ public: void init(); // Vérifie si une prise est possible pour une pièce donnée - // TODO: J'ai des erreurs depuis que j'ai voulu faire cette fonction - // et je comprends pas pourquoi - bool prisePossible(const Piece *piece) const; + bool prisePossible(Joueur &joueur) const; }; diff --git a/includes/Dames/PieceDames.hpp b/includes/Dames/PieceDames.hpp index bb2c8d5..35d0bfa 100644 --- a/includes/Dames/PieceDames.hpp +++ b/includes/Dames/PieceDames.hpp @@ -10,6 +10,12 @@ struct PieceDames : public Piece { PieceDames(const enum Categorie); virtual ~PieceDames(); + + // Getter pour la piece (dame ou non) + bool getDame() const { return dame; } + + // Setter pour la piece (dame ou non) + void setDame(bool d){ dame = d; } private: // True si la piece est une dame diff --git a/src/Dames/Dames.cpp b/src/Dames/Dames.cpp index fc24da4..a2934bf 100644 --- a/src/Dames/Dames.cpp +++ b/src/Dames/Dames.cpp @@ -42,9 +42,10 @@ std::ostream &operator<<(std::ostream &out, const Dames &data) { void Dames::init() { plateau.initialiserPlateau(); } // TODO: A continuer -bool Dames::prisePossible(const Piece *piece) const { - /* if (!piece->dame) - if () */ - +bool Dames::prisePossible(Joueur &joueur) const { + const std::vector& pieces = joueur.getPieces(); + for(int i=0;igetDame()) + } return false; }