Since initPlateau require players only for one game, just give thoses player for this game, so other don't need to take players in args for nothing

This commit is contained in:
Mylloon 2023-12-14 17:18:28 +01:00
parent bf74632047
commit 9aa620b6bc
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
13 changed files with 28 additions and 29 deletions

View file

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "../Joueur.hpp"
#include "PlateauButin.hpp" #include "PlateauButin.hpp"
class Butin { class Butin {

View file

@ -8,5 +8,5 @@ public:
virtual ~PlateauButin(); virtual ~PlateauButin();
// Initialise le plateau du Butin // Initialise le plateau du Butin
void initialiserPlateau(Joueur &j1, Joueur &j2) override; void initialiserPlateau() override;
}; };

View file

@ -1,12 +1,15 @@
#pragma once #pragma once
#include "../Joueur.hpp"
#include "../Plateau.hpp" #include "../Plateau.hpp"
class PlateauDames : public Plateau { class PlateauDames : public Plateau {
Joueur *j1, *j2;
public: public:
PlateauDames(); PlateauDames(Joueur &joueur1, Joueur &joueur2);
virtual ~PlateauDames(); virtual ~PlateauDames();
// Initialise le plateau de Dames // Initialise le plateau de Dames
void initialiserPlateau(Joueur &j1, Joueur &j2) override; void initialiserPlateau() override;
}; };

View file

@ -1,6 +1,6 @@
#pragma once #pragma once
#include "../includes/Joueur.hpp" #include "../includes/Piece.hpp"
class Plateau { class Plateau {
friend std::ostream &operator<<(std::ostream &, const Plateau &); friend std::ostream &operator<<(std::ostream &, const Plateau &);
@ -19,7 +19,7 @@ public:
// Fonction pour initialiser le plateau (selon le jeu) // Fonction pour initialiser le plateau (selon le jeu)
// Seulement deux joueurs pour le jeu de dame uniquement, je suis pas sûre de // Seulement deux joueurs pour le jeu de dame uniquement, je suis pas sûre de
// comment initialiser la fonction autrement // comment initialiser la fonction autrement
virtual void initialiserPlateau(Joueur &j1, Joueur &j2) = 0; virtual void initialiserPlateau() = 0;
// Fonction pour afficher le plateau (selon le jeu) // Fonction pour afficher le plateau (selon le jeu)
void afficherPlateau(const bool debug = false) const; void afficherPlateau(const bool debug = false) const;

View file

@ -8,5 +8,5 @@ public:
virtual ~PlateauSafari(); virtual ~PlateauSafari();
// Initialise le plateau du Safari // Initialise le plateau du Safari
void initialiserPlateau(Joueur &j1, Joueur &j2) override; void initialiserPlateau() override;
}; };

View file

@ -1,4 +0,0 @@
#pragma once
template <typename T>
void ignore(T &&) {}

View file

@ -21,4 +21,4 @@ const Butin &Butin::operator=(const Butin &src) {
return *this; return *this;
} }
void Butin::init() { plateau.initialiserPlateau(joueur1, joueur2); } void Butin::init() { plateau.initialiserPlateau(); }

View file

@ -1,6 +1,5 @@
#include "../../includes/Butin/PlateauButin.hpp" #include "../../includes/Butin/PlateauButin.hpp"
#include "../../includes/Butin/PieceButin.hpp" #include "../../includes/Butin/PieceButin.hpp"
#include "../../includes/utils.hpp"
#include <algorithm> #include <algorithm>
#include <random> #include <random>
@ -9,9 +8,7 @@ PlateauButin::PlateauButin() : Plateau(8) {}
PlateauButin::~PlateauButin() {} PlateauButin::~PlateauButin() {}
void PlateauButin::initialiserPlateau(Joueur &j1, Joueur &j2) { void PlateauButin::initialiserPlateau() {
ignore(j1);
ignore(j2);
// Vecteur de toutes les pièeces du jeu // Vecteur de toutes les pièeces du jeu
std::vector<PieceButin> pieces; std::vector<PieceButin> pieces;

View file

@ -1,7 +1,8 @@
#include "../../includes/Dames/Dames.hpp" #include "../../includes/Dames/Dames.hpp"
Dames::Dames(Joueur &j1, Joueur &j2) Dames::Dames(Joueur &j1, Joueur &j2)
: plateau(PlateauDames()), joueur1(j1), joueur2(j2), joueurCourant(j1) { : plateau(PlateauDames(j1, j2)), joueur1(j1), joueur2(j2),
joueurCourant(j1) {
std::srand(static_cast<unsigned int>(time(0))); std::srand(static_cast<unsigned int>(time(0)));
int r = std::rand() % 2; int r = std::rand() % 2;
if (r == 0) { if (r == 0) {
@ -19,8 +20,8 @@ Dames::Dames(Joueur &j1, Joueur &j2)
Dames::~Dames() {} Dames::~Dames() {}
Dames::Dames(const Dames &src) Dames::Dames(const Dames &src)
: plateau(PlateauDames()), joueur1{src.joueur1}, joueur2{src.joueur2}, : plateau(PlateauDames(src.joueur1, src.joueur2)), joueur1{src.joueur1},
joueurCourant{src.joueurCourant} { joueur2{src.joueur2}, joueurCourant{src.joueurCourant} {
init(); init();
} }
@ -32,7 +33,7 @@ const Dames &Dames::operator=(const Dames &src) {
return *this; return *this;
} }
void Dames::init() { plateau.initialiserPlateau(joueur1, joueur2); } void Dames::init() { plateau.initialiserPlateau(); }
// TODO: A continuer // TODO: A continuer
bool Dames::prisePossible(const Piece *piece) const { bool Dames::prisePossible(const Piece *piece) const {

View file

@ -1,16 +1,17 @@
#include "../../includes/Dames/PlateauDames.hpp" #include "../../includes/Dames/PlateauDames.hpp"
#include "../../includes/Dames/PieceDames.hpp" #include "../../includes/Dames/PieceDames.hpp"
PlateauDames::PlateauDames() : Plateau(10) {} PlateauDames::PlateauDames(Joueur &joueur1, Joueur &joueur2)
: Plateau(10), j1(&joueur1), j2(&joueur2) {}
PlateauDames::~PlateauDames() {} PlateauDames::~PlateauDames() {}
void PlateauDames::initialiserPlateau(Joueur &j1, Joueur &j2) { void PlateauDames::initialiserPlateau() {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
for (int j = 0; j < 10; j++) { for (int j = 0; j < 10; j++) {
if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) { if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) {
plateau[i][j] = new PieceDames(PieceDames::Noire); plateau[i][j] = new PieceDames(PieceDames::Noire);
j1.ajoutPiece(plateau[i][j]); j1->ajoutPiece(plateau[i][j]);
} }
} }
} }
@ -19,7 +20,7 @@ void PlateauDames::initialiserPlateau(Joueur &j1, Joueur &j2) {
for (int j = 0; j < 10; j++) { for (int j = 0; j < 10; j++) {
if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) { if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) {
plateau[i][j] = new PieceDames(PieceDames::Blanche); plateau[i][j] = new PieceDames(PieceDames::Blanche);
j2.ajoutPiece(plateau[i][j]); j2->ajoutPiece(plateau[i][j]);
} }
} }
} }

View file

@ -1,12 +1,9 @@
#include "../../includes/Safari/PlateauSafari.hpp" #include "../../includes/Safari/PlateauSafari.hpp"
#include "../../includes/utils.hpp"
PlateauSafari::PlateauSafari() : Plateau(8) {} PlateauSafari::PlateauSafari() : Plateau(8) {}
PlateauSafari::~PlateauSafari() {} PlateauSafari::~PlateauSafari() {}
void PlateauSafari::initialiserPlateau(Joueur &j1, Joueur &j2) { void PlateauSafari::initialiserPlateau() {
ignore(j1);
ignore(j2);
// TODO // TODO
} }

View file

@ -28,7 +28,7 @@ const Safari &Safari::operator=(const Safari &src) {
void Safari::init() { void Safari::init() {
// On peut donner que 2 joueurs ? // On peut donner que 2 joueurs ?
plateau.initialiserPlateau(joueur1, joueur2); plateau.initialiserPlateau();
} }
void Safari::choixAnimal(const PieceSafari::Categorie animal) const { void Safari::choixAnimal(const PieceSafari::Categorie animal) const {

View file

@ -1,8 +1,11 @@
#include "../includes/Dames/PlateauDames.hpp" #include "../includes/Dames/PlateauDames.hpp"
#include "../includes/Ecran.hpp" #include "../includes/Ecran.hpp"
#include "../includes/Joueur.hpp"
int main() { int main() {
PlateauDames p; Joueur j1;
Joueur j2;
PlateauDames p(j1, j2);
Ecran e; Ecran e;
// e.afficher(std::bind(&Plateau::afficherPlateau, &p, true)); // e.afficher(std::bind(&Plateau::afficherPlateau, &p, true));