implement missing declaration (operator<<)
This commit is contained in:
parent
f5bfcc409d
commit
adf9f747ed
9 changed files with 62 additions and 9 deletions
|
@ -21,8 +21,8 @@ public:
|
|||
// comment initialiser la fonction autrement
|
||||
virtual void initialiserPlateau() = 0;
|
||||
|
||||
// Fonction pour afficher le plateau (selon le jeu)
|
||||
void afficherPlateau(const bool debug = false) const;
|
||||
// Fonction pour afficher le plateau (selon le jeu) vers une sortie
|
||||
void afficherPlateau(std::ostream &, const bool debug = false) const;
|
||||
|
||||
// Fonction pour modifier le plateau
|
||||
void modifierPlateau(const int x, const int y, Piece *piece) const;
|
||||
|
|
|
@ -21,4 +21,10 @@ const Butin &Butin::operator=(const Butin &src) {
|
|||
return *this;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const Butin &data) {
|
||||
out << "j1: " << data.joueur1 << "\nj2: " << data.joueur2 << "\nPlateau:\n"
|
||||
<< data.plateau;
|
||||
return out;
|
||||
}
|
||||
|
||||
void Butin::init() { plateau.initialiserPlateau(); }
|
||||
|
|
|
@ -33,6 +33,12 @@ const Dames &Dames::operator=(const Dames &src) {
|
|||
return *this;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const Dames &data) {
|
||||
out << "j1: " << data.joueur1 << "\nj2: " << data.joueur2 << "\nPlateau:\n"
|
||||
<< data.plateau;
|
||||
return out;
|
||||
}
|
||||
|
||||
void Dames::init() { plateau.initialiserPlateau(); }
|
||||
|
||||
// TODO: A continuer
|
||||
|
|
|
@ -13,3 +13,19 @@ const Joueur &Joueur::operator=(const Joueur &src) {
|
|||
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const Joueur &data) {
|
||||
out << "nom: " << data.nom << "\npieces: ";
|
||||
|
||||
if (data.pieces.empty()) {
|
||||
out << "[]";
|
||||
} else {
|
||||
out << "[\n";
|
||||
for (Piece *p : data.pieces) {
|
||||
out << " " << *p << ",\n";
|
||||
}
|
||||
out << ']';
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
|
|
@ -13,3 +13,9 @@ const Mouvement &Mouvement::operator=(const Mouvement &src) {
|
|||
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const Mouvement &data) {
|
||||
out << "source: (" << data.sourceX << ", " << data.sourceY
|
||||
<< "), destination: (" << data.destX << ", " << data.destY << ")";
|
||||
return out;
|
||||
}
|
||||
|
|
|
@ -13,3 +13,8 @@ const Piece &Piece::operator=(const Piece &src) {
|
|||
|
||||
return *this;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const Piece &data) {
|
||||
out << '"' << data.categorie << '"';
|
||||
return out;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,12 @@ Plateau::~Plateau() {
|
|||
delete[] plateau;
|
||||
}
|
||||
|
||||
void Plateau::afficherPlateau(const bool d) const {
|
||||
std::ostream &operator<<(std::ostream &out, const Plateau &data) {
|
||||
data.afficherPlateau(out, false);
|
||||
return out;
|
||||
}
|
||||
|
||||
void Plateau::afficherPlateau(std::ostream &out, const bool d) const {
|
||||
const float tailleCellule =
|
||||
static_cast<float>(Ecran::window.getSize().x) / taille;
|
||||
|
||||
|
@ -37,19 +42,19 @@ void Plateau::afficherPlateau(const bool d) const {
|
|||
// Position de la cellule
|
||||
cell.setPosition(x, y);
|
||||
if (d) {
|
||||
std::cout << "(" << x << ", " << y;
|
||||
out << "(" << x << ", " << y;
|
||||
}
|
||||
|
||||
// Alternation des couleurs
|
||||
if ((i + j) % 2 == 0) {
|
||||
cell.setFillColor(sf::Color::White);
|
||||
if (d) {
|
||||
std::cout << ", B), ";
|
||||
out << ", B), ";
|
||||
}
|
||||
} else {
|
||||
cell.setFillColor(sf::Color::Black);
|
||||
if (d) {
|
||||
std::cout << ", N), ";
|
||||
out << ", N), ";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,11 +62,11 @@ void Plateau::afficherPlateau(const bool d) const {
|
|||
Ecran::window.draw(cell);
|
||||
}
|
||||
if (d) {
|
||||
std::cout << "\n";
|
||||
out << "\n";
|
||||
}
|
||||
}
|
||||
if (d) {
|
||||
std::cout << "---\n";
|
||||
out << "---\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,13 @@ const Safari &Safari::operator=(const Safari &src) {
|
|||
return *this;
|
||||
}
|
||||
|
||||
std::ostream &operator<<(std::ostream &out, const Safari &data) {
|
||||
out << "j1: " << data.joueur1 << "\nj2: " << data.joueur2
|
||||
<< "\nj3: " << data.joueur3 << "\nPlateau:\n"
|
||||
<< data.plateau;
|
||||
return out;
|
||||
}
|
||||
|
||||
void Safari::init() {
|
||||
// On peut donner que 2 joueurs ?
|
||||
plateau.initialiserPlateau();
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
#include "../includes/Dames/PlateauDames.hpp"
|
||||
#include "../includes/Ecran.hpp"
|
||||
|
||||
void draw_debug(PlateauDames &p) { p.afficherPlateau(std::cout, true); }
|
||||
|
||||
int main() {
|
||||
Joueur j1;
|
||||
Joueur j2;
|
||||
PlateauDames p(j1, j2);
|
||||
Ecran e;
|
||||
// e.afficher(std::bind(&Plateau::afficherPlateau, &p, true));
|
||||
// e.afficher(std::bind(&draw_debug, p));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Reference in a new issue