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
#include "../Joueur.hpp"
#include "PlateauButin.hpp"
class Butin {

View file

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

View file

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

View file

@ -1,6 +1,6 @@
#pragma once
#include "../includes/Joueur.hpp"
#include "../includes/Piece.hpp"
class Plateau {
friend std::ostream &operator<<(std::ostream &, const Plateau &);
@ -19,7 +19,7 @@ public:
// Fonction pour initialiser le plateau (selon le jeu)
// Seulement deux joueurs pour le jeu de dame uniquement, je suis pas sûre de
// 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)
void afficherPlateau(const bool debug = false) const;

View file

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

View file

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

View file

@ -1,16 +1,17 @@
#include "../../includes/Dames/PlateauDames.hpp"
#include "../../includes/Dames/PieceDames.hpp"
PlateauDames::PlateauDames() : Plateau(10) {}
PlateauDames::PlateauDames(Joueur &joueur1, Joueur &joueur2)
: Plateau(10), j1(&joueur1), j2(&joueur2) {}
PlateauDames::~PlateauDames() {}
void PlateauDames::initialiserPlateau(Joueur &j1, Joueur &j2) {
void PlateauDames::initialiserPlateau() {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 10; j++) {
if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) {
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++) {
if ((i % 2 == 0 && j % 2 == 1) || (i % 2 == 1 && j % 2 == 0)) {
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/utils.hpp"
PlateauSafari::PlateauSafari() : Plateau(8) {}
PlateauSafari::~PlateauSafari() {}
void PlateauSafari::initialiserPlateau(Joueur &j1, Joueur &j2) {
ignore(j1);
ignore(j2);
void PlateauSafari::initialiserPlateau() {
// TODO
}

View file

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

View file

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