cast d'une piece en PieceDames, donc pas besoin de créer une fonction spécifique dans la classe mere
This commit is contained in:
parent
cbebb6719c
commit
7f9d100aee
4 changed files with 14 additions and 10 deletions
|
@ -12,7 +12,7 @@ struct PieceDames : public Piece {
|
||||||
virtual ~PieceDames();
|
virtual ~PieceDames();
|
||||||
|
|
||||||
// Getter pour la piece (dame ou non)
|
// Getter pour la piece (dame ou non)
|
||||||
bool getDame() const override;
|
bool getDame() const;
|
||||||
|
|
||||||
// Setter pour la piece (dame ou non)
|
// Setter pour la piece (dame ou non)
|
||||||
void setDame(const bool d);
|
void setDame(const bool d);
|
||||||
|
|
|
@ -9,7 +9,8 @@ protected:
|
||||||
// Couleur de la pièce ou type d'animal pour Safari par ex
|
// Couleur de la pièce ou type d'animal pour Safari par ex
|
||||||
std::string categorie;
|
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 x;
|
||||||
int y;
|
int y;
|
||||||
|
|
||||||
|
@ -20,9 +21,6 @@ public:
|
||||||
Piece(const Piece &); // copy constructor
|
Piece(const Piece &); // copy constructor
|
||||||
const Piece &operator=(const Piece &); // copy assignement
|
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
|
// Fonction de déplacement
|
||||||
bool moveTo(const int destX, const int destY);
|
bool moveTo(const int destX, const int destY);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "../../includes/Dames/Dames.hpp"
|
#include "../../includes/Dames/Dames.hpp"
|
||||||
|
#include "../../includes/Dames/PieceDames.hpp"
|
||||||
|
|
||||||
Dames::Dames(Joueur &j1, Joueur &j2)
|
Dames::Dames(Joueur &j1, Joueur &j2)
|
||||||
: plateau(PlateauDames(j1, j2)), joueur1(j1), joueur2(j2),
|
: plateau(PlateauDames(j1, j2)), joueur1(j1), joueur2(j2),
|
||||||
|
@ -44,13 +45,18 @@ void Dames::init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: A continuer
|
// 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 {
|
bool Dames::prisePossible(Joueur &joueur) const {
|
||||||
const std::vector<Piece *> &pieces = joueur.getPieces();
|
const std::vector<Piece *> &pieces = joueur.getPieces();
|
||||||
int x = 1; int y = 1;
|
int x = 1;
|
||||||
|
int y = 1;
|
||||||
for (int i = 0; i < pieces.size(); i++) {
|
for (int i = 0; i < pieces.size(); i++) {
|
||||||
if (!pieces[i]->getDame()){
|
PieceDames *p = dynamic_cast<PieceDames *>(pieces[i]);
|
||||||
//if(plateau[x][y] == nullptr)
|
if (p->getDame()) {
|
||||||
|
// if(plateau[x][y] == nullptr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "../includes/Piece.hpp"
|
#include "../includes/Piece.hpp"
|
||||||
|
|
||||||
Piece::Piece(const std::string cat) {
|
Piece::Piece(const std::string cat) : categorie(cat) {
|
||||||
std::cout << "pièce - " << cat << "\n";
|
std::cout << "pièce - " << cat << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue