Début initialisation pour Butin

This commit is contained in:
Emma 2023-12-03 17:27:06 +01:00
parent 0c72d11ab9
commit 707caa59b3
6 changed files with 66 additions and 4 deletions

View file

@ -2,15 +2,22 @@
#include <iostream> #include <iostream>
#include "../includes/Joueur.hpp"
#include "../includes/PlateauButin.hpp"
class Butin { class Butin {
friend std::ostream &operator<<(std::ostream &, const Butin &); friend std::ostream &operator<<(std::ostream &, const Butin &);
// Plateau de jeu // Plateau de jeu
PlateauButin plateau;
// Joueurs // Joueurs
Joueur &joueur1;
Joueur &joueur2;
Joueur &joueurCourant;
public: public:
Butin(); // constructor Butin(Joueur &joueur1, Joueur &joueur2); // constructor
virtual ~Butin(); // destructor virtual ~Butin(); // destructor
Butin(const Butin &); // copy constructor Butin(const Butin &); // copy constructor

View file

@ -7,7 +7,7 @@ class Plateau {
// Taille du plateau // Taille du plateau
int taille; int taille;
protected:
// Tableau représentant le plateau de jeu // Tableau représentant le plateau de jeu
Piece ***plateau; Piece ***plateau;

13
includes/PlateauButin.hpp Normal file
View file

@ -0,0 +1,13 @@
#pragma once
#include "Plateau.hpp"
class PlateauButin : public Plateau {
public:
PlateauButin(int taille);
virtual ~PlateauButin();
// Initialise le plateau du Butin
void initialiserPlateau(Joueur &j1, Joueur &j2) override;
};

View file

@ -1,10 +1,17 @@
#include "../includes/Butin.hpp" #include "../includes/Butin.hpp"
Butin::Butin() { std::cout << "butin\n"; } Butin::Butin(Joueur &j1, Joueur &j2)
: plateau(PlateauButin(8)), joueur1{j1}, joueur2{j2}, joueurCourant{j1}{
plateau.initialiserPlateau(j1, j2);
}
Butin::~Butin() {} Butin::~Butin() {}
Butin::Butin(const Butin &) {} Butin::Butin(const Butin &src)
: plateau(PlateauButin(8)), joueur1{src.joueur1}, joueur2{src.joueur2},
joueurCourant{src.joueurCourant} {
plateau.initialiserPlateau(joueur1, joueur2);
}
const Butin &Butin::operator=(const Butin &src) { const Butin &Butin::operator=(const Butin &src) {
if (this == &src) { if (this == &src) {

View file

@ -2,6 +2,9 @@
PieceButin::PieceButin(const std::string cat) : Piece(cat) { PieceButin::PieceButin(const std::string cat) : Piece(cat) {
std::cout << "pièce - " << cat << "\n"; std::cout << "pièce - " << cat << "\n";
if(cat=="jaune") this->points=1;
if(cat=="rouge") this->points=2;
if(cat=="noire") this->points=3;
} }
PieceButin::~PieceButin() {} PieceButin::~PieceButin() {}

32
src/PlateauButin.cpp Normal file
View file

@ -0,0 +1,32 @@
#include "../includes/PlateauButin.hpp"
#include "../includes/PieceButin.hpp"
#include <algorithm>
#include <random>
PlateauButin::PlateauButin(int t) : Plateau(t) {}
PlateauButin::~PlateauButin() {}
// On utilise pas les arguments ici, à voir si il faut vraiment faire un override
void PlateauButin::initialiserPlateau(Joueur &j1, Joueur &j2){
// Vecteur de toutes les pièeces du jeu
std::vector<PieceButin> pieces;
for(int i=0;i<34;i++) pieces.push_back(PieceButin("jaune"));
for(int i=0;i<20;i++) pieces.push_back(PieceButin("rouge"));
for(int i=0;i<10;i++) pieces.push_back(PieceButin("noire"));
// Mélange le vecteur de pièces (j'ai jamais utilisé ça pour randomiser faudra que je test que ça fonctionne bien)
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(pieces.begin(), pieces.end(), g);
// Place toutes les pieces sur le plateau
int index=0;
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
plateau[i][j] = &pieces[index++];
}
}
}