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 "../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;

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)
// 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);

View file

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

View file

@ -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<unsigned int>(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);
}

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;
}
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<float>(Ecran::window.getSize().x) / taille;

View file

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

View file

@ -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"));

View file

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