diff --git a/includes/Dames/PieceDames.hpp b/includes/Dames/PieceDames.hpp index 5ebeaa2..758f870 100644 --- a/includes/Dames/PieceDames.hpp +++ b/includes/Dames/PieceDames.hpp @@ -12,7 +12,7 @@ struct PieceDames : public Piece { virtual ~PieceDames(); // Getter pour la piece (dame ou non) - bool getDame() const override; + bool getDame() const; // Setter pour la piece (dame ou non) void setDame(const bool d); diff --git a/includes/Piece.hpp b/includes/Piece.hpp index f8ef362..e90d4e2 100644 --- a/includes/Piece.hpp +++ b/includes/Piece.hpp @@ -9,7 +9,8 @@ protected: // Couleur de la pièce ou type d'animal pour Safari par ex std::string categorie; - // Indices où sont placés les pièces sur le plateau (quand elles le sont) (est-ce que c'est redondant ?) + // Indices où sont placés les pièces sur le plateau (quand elles le sont) + // (est-ce que c'est redondant ?) int x; int y; @@ -20,9 +21,6 @@ public: Piece(const Piece &); // copy constructor const Piece &operator=(const Piece &); // copy assignement - // Pour Dames : Fonction virtuelle pour vérifier si une pièce est une dame ou non - virtual bool getDame() const; - // Fonction de déplacement bool moveTo(const int destX, const int destY); diff --git a/src/Dames/Dames.cpp b/src/Dames/Dames.cpp index 7ea2125..d2f00f7 100644 --- a/src/Dames/Dames.cpp +++ b/src/Dames/Dames.cpp @@ -1,4 +1,5 @@ #include "../../includes/Dames/Dames.hpp" +#include "../../includes/Dames/PieceDames.hpp" Dames::Dames(Joueur &j1, Joueur &j2) : plateau(PlateauDames(j1, j2)), joueur1(j1), joueur2(j2), @@ -44,13 +45,18 @@ void Dames::init() { } // TODO: A continuer -// Pas très sûre de comment procéder pour cette fonction : il faudrait vérifier les cases en diagnonale des pièces observées mais est-ce qu'il y a besoin que les pièces aient des attributs pour leur position (comme proposé dans Piece) ? +// Pas très sûre de comment procéder pour cette fonction : il faudrait vérifier +// les cases en diagnonale des pièces observées mais est-ce qu'il y a besoin que +// les pièces aient des attributs pour leur position (comme proposé dans Piece) +// ? bool Dames::prisePossible(Joueur &joueur) const { const std::vector &pieces = joueur.getPieces(); - int x = 1; int y = 1; + int x = 1; + int y = 1; for (int i = 0; i < pieces.size(); i++) { - if (!pieces[i]->getDame()){ - //if(plateau[x][y] == nullptr) + PieceDames *p = dynamic_cast(pieces[i]); + if (p->getDame()) { + // if(plateau[x][y] == nullptr) } } return false; diff --git a/src/Piece.cpp b/src/Piece.cpp index 08c853a..168cbc1 100644 --- a/src/Piece.cpp +++ b/src/Piece.cpp @@ -1,6 +1,6 @@ #include "../includes/Piece.hpp" -Piece::Piece(const std::string cat) { +Piece::Piece(const std::string cat) : categorie(cat) { std::cout << "pièce - " << cat << "\n"; }