refactor: Plateau

This commit is contained in:
Mylloon 2023-12-14 15:58:43 +01:00
parent 0741124604
commit 1beaf6bedd
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
10 changed files with 56 additions and 31 deletions

View file

@ -3,13 +3,13 @@
#include <iostream> #include <iostream>
#include "../Joueur.hpp" #include "../Joueur.hpp"
#include "../Plateau.hpp" #include "PlateauDames.hpp"
class Dames { class Dames {
friend std::ostream &operator<<(std::ostream &, const Dames &); friend std::ostream &operator<<(std::ostream &, const Dames &);
// Plateau de jeu // Plateau de jeu
Plateau plateau; PlateauDames plateau;
// Joueurs // Joueurs
Joueur &joueur1; Joueur &joueur1;

View file

@ -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;
};

View file

@ -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); virtual void initialiserPlateau(Joueur &j1, Joueur &j2) = 0;
// Fonction pour afficher le plateau (selon le jeu) // Fonction pour afficher le plateau (selon le jeu)
void afficherPlateau(const bool debug = false); void afficherPlateau(const bool debug = false);

View file

@ -4,6 +4,9 @@
class PlateauSafari : public Plateau { class PlateauSafari : public Plateau {
public: public:
PlateauSafari(int taille); PlateauSafari();
virtual ~PlateauSafari(); virtual ~PlateauSafari();
// Initialise le plateau du Safari
void initialiserPlateau(Joueur &j1, Joueur &j2) override;
}; };

View file

@ -1,7 +1,7 @@
#include "../../includes/Dames/Dames.hpp" #include "../../includes/Dames/Dames.hpp"
Dames::Dames(Joueur &j1, Joueur &j2) 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<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) {
@ -21,7 +21,7 @@ Dames::Dames(Joueur &j1, Joueur &j2)
Dames::~Dames() {} Dames::~Dames() {}
Dames::Dames(const Dames &src) 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} { joueurCourant{src.joueurCourant} {
plateau.initialiserPlateau(joueur1, joueur2); plateau.initialiserPlateau(joueur1, joueur2);
} }

View file

@ -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]);
}
}
}
}

View file

@ -19,26 +19,6 @@ Plateau::~Plateau() {
delete[] 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) { void Plateau::afficherPlateau(const bool d) {
const float tailleCellule = const float tailleCellule =
static_cast<float>(Ecran::window.getSize().x) / taille; static_cast<float>(Ecran::window.getSize().x) / taille;

View file

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

View file

@ -1,7 +1,7 @@
#include "../../includes/Safari/Safari.hpp" #include "../../includes/Safari/Safari.hpp"
Safari::Safari(Joueur &j1, Joueur &j2, Joueur &j3) 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} { joueurCourant{j1} {
for (int i = 0; i < 50; i++) { for (int i = 0; i < 50; i++) {
barrieres.push_back(new PieceSafari("barriere")); barrieres.push_back(new PieceSafari("barriere"));
@ -11,7 +11,7 @@ Safari::Safari(Joueur &j1, Joueur &j2, Joueur &j3)
Safari::~Safari() {} Safari::~Safari() {}
Safari::Safari(const Safari &src) 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} { joueur3{src.joueur3}, joueurCourant{src.joueurCourant} {
for (int i = 0; i < 50; i++) { for (int i = 0; i < 50; i++) {
barrieres.push_back(new PieceSafari("barriere")); barrieres.push_back(new PieceSafari("barriere"));

View file

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