From 1beaf6beddf241c0ad67835169c7b29672080a4a Mon Sep 17 00:00:00 2001 From: Mylloon Date: Thu, 14 Dec 2023 15:58:43 +0100 Subject: [PATCH] refactor: Plateau --- includes/Dames/Dames.hpp | 4 ++-- includes/Dames/PlateauDames.hpp | 12 ++++++++++++ includes/Plateau.hpp | 2 +- includes/Safari/PlateauSafari.hpp | 5 ++++- src/Dames/Dames.cpp | 4 ++-- src/Dames/PlateauDames.cpp | 26 ++++++++++++++++++++++++++ src/Plateau.cpp | 20 -------------------- src/Safari/PlateauSafari.cpp | 6 +++++- src/Safari/Safari.cpp | 4 ++-- src/main.cpp | 4 ++-- 10 files changed, 56 insertions(+), 31 deletions(-) create mode 100644 includes/Dames/PlateauDames.hpp create mode 100644 src/Dames/PlateauDames.cpp diff --git a/includes/Dames/Dames.hpp b/includes/Dames/Dames.hpp index 9765739..98ba149 100644 --- a/includes/Dames/Dames.hpp +++ b/includes/Dames/Dames.hpp @@ -3,13 +3,13 @@ #include #include "../Joueur.hpp" -#include "../Plateau.hpp" +#include "PlateauDames.hpp" class Dames { friend std::ostream &operator<<(std::ostream &, const Dames &); // Plateau de jeu - Plateau plateau; + PlateauDames plateau; // Joueurs Joueur &joueur1; diff --git a/includes/Dames/PlateauDames.hpp b/includes/Dames/PlateauDames.hpp new file mode 100644 index 0000000..a0195ed --- /dev/null +++ b/includes/Dames/PlateauDames.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include "../Plateau.hpp" + +class PlateauDames : public Plateau { +public: + PlateauDames(); + virtual ~PlateauDames(); + + // Initialise le plateau de Dames + void initialiserPlateau(Joueur &j1, Joueur &j2) override; +}; diff --git a/includes/Plateau.hpp b/includes/Plateau.hpp index 44e34e3..99322a4 100644 --- a/includes/Plateau.hpp +++ b/includes/Plateau.hpp @@ -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); + virtual void initialiserPlateau(Joueur &j1, Joueur &j2) = 0; // Fonction pour afficher le plateau (selon le jeu) void afficherPlateau(const bool debug = false); diff --git a/includes/Safari/PlateauSafari.hpp b/includes/Safari/PlateauSafari.hpp index 28b5e65..44ca372 100644 --- a/includes/Safari/PlateauSafari.hpp +++ b/includes/Safari/PlateauSafari.hpp @@ -4,6 +4,9 @@ class PlateauSafari : public Plateau { public: - PlateauSafari(int taille); + PlateauSafari(); virtual ~PlateauSafari(); + + // Initialise le plateau du Safari + void initialiserPlateau(Joueur &j1, Joueur &j2) override; }; diff --git a/src/Dames/Dames.cpp b/src/Dames/Dames.cpp index 978e0de..c4acb29 100644 --- a/src/Dames/Dames.cpp +++ b/src/Dames/Dames.cpp @@ -1,7 +1,7 @@ #include "../../includes/Dames/Dames.hpp" Dames::Dames(Joueur &j1, Joueur &j2) - : plateau(Plateau(10)), joueur1(j1), joueur2(j2), joueurCourant(j1) { + : plateau(PlateauDames()), joueur1(j1), joueur2(j2), joueurCourant(j1) { std::srand(static_cast(time(0))); int r = std::rand() % 2; if (r == 0) { @@ -21,7 +21,7 @@ Dames::Dames(Joueur &j1, Joueur &j2) Dames::~Dames() {} Dames::Dames(const Dames &src) - : plateau(Plateau(10)), joueur1{src.joueur1}, joueur2{src.joueur2}, + : plateau(PlateauDames()), joueur1{src.joueur1}, joueur2{src.joueur2}, joueurCourant{src.joueurCourant} { plateau.initialiserPlateau(joueur1, joueur2); } diff --git a/src/Dames/PlateauDames.cpp b/src/Dames/PlateauDames.cpp new file mode 100644 index 0000000..e62cebb --- /dev/null +++ b/src/Dames/PlateauDames.cpp @@ -0,0 +1,26 @@ +#include "../../includes/Dames/PlateauDames.hpp" +#include "../../includes/Dames/PieceDames.hpp" + +PlateauDames::PlateauDames() : Plateau(10) {} + +PlateauDames::~PlateauDames() {} + +void PlateauDames::initialiserPlateau(Joueur &j1, Joueur &j2) { + 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("noire"); + j1.ajoutPiece(plateau[i][j]); + } + } + } + + for (int i = 6; i < 10; 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("blanche"); + j2.ajoutPiece(plateau[i][j]); + } + } + } +} diff --git a/src/Plateau.cpp b/src/Plateau.cpp index 5945fe7..3fadb4b 100644 --- a/src/Plateau.cpp +++ b/src/Plateau.cpp @@ -19,26 +19,6 @@ Plateau::~Plateau() { delete[] plateau; } -void Plateau::initialiserPlateau(Joueur &j1, Joueur &j2) { - 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("noire"); - j1.ajoutPiece(plateau[i][j]); - } - } - } - - for (int i = 6; i < 10; 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("blanche"); - j2.ajoutPiece(plateau[i][j]); - } - } - } -} - void Plateau::afficherPlateau(const bool d) { const float tailleCellule = static_cast(Ecran::window.getSize().x) / taille; diff --git a/src/Safari/PlateauSafari.cpp b/src/Safari/PlateauSafari.cpp index da4035c..98ead24 100644 --- a/src/Safari/PlateauSafari.cpp +++ b/src/Safari/PlateauSafari.cpp @@ -1,5 +1,9 @@ #include "../../includes/Safari/PlateauSafari.hpp" -PlateauSafari::PlateauSafari(int t) : Plateau(t) {} +PlateauSafari::PlateauSafari() : Plateau(8) {} PlateauSafari::~PlateauSafari() {} + +void PlateauSafari::initialiserPlateau(Joueur &j1, Joueur &j2) { + // TODO +} diff --git a/src/Safari/Safari.cpp b/src/Safari/Safari.cpp index cb756db..0149540 100644 --- a/src/Safari/Safari.cpp +++ b/src/Safari/Safari.cpp @@ -1,7 +1,7 @@ #include "../../includes/Safari/Safari.hpp" Safari::Safari(Joueur &j1, Joueur &j2, Joueur &j3) - : plateau(PlateauSafari(8)), joueur1{j1}, joueur2{j2}, joueur3{j3}, + : plateau(PlateauSafari()), joueur1{j1}, joueur2{j2}, joueur3{j3}, joueurCourant{j1} { for (int i = 0; i < 50; i++) { barrieres.push_back(new PieceSafari("barriere")); @@ -11,7 +11,7 @@ Safari::Safari(Joueur &j1, Joueur &j2, Joueur &j3) Safari::~Safari() {} Safari::Safari(const Safari &src) - : plateau(PlateauSafari(8)), joueur1{src.joueur1}, joueur2{src.joueur2}, + : plateau(PlateauSafari()), joueur1{src.joueur1}, joueur2{src.joueur2}, joueur3{src.joueur3}, joueurCourant{src.joueurCourant} { for (int i = 0; i < 50; i++) { barrieres.push_back(new PieceSafari("barriere")); diff --git a/src/main.cpp b/src/main.cpp index b8aba96..50d8f8e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,8 @@ +#include "../includes/Dames/PlateauDames.hpp" #include "../includes/Ecran.hpp" -#include "../includes/Plateau.hpp" int main() { - Plateau p(10); + PlateauDames p; Ecran e; // e.afficher(std::bind(&Plateau::afficherPlateau, &p, true));