This commit is contained in:
Emma 2023-12-10 15:03:07 +01:00
parent 707caa59b3
commit a1f9e5d2c5
7 changed files with 70 additions and 5 deletions

View file

@ -11,7 +11,8 @@ class Joueur {
// Pièces du joueur // Pièces du joueur
// Pour le butin, tout simplement les pièces que le joueur gagne. // Pour le butin, tout simplement les pièces que le joueur gagne.
// Pour les autres jeux, peut être uniquement les pieces sur le plateau. // Pour les dames, peut être uniquement les pieces sur le plateau.
// Pour le safari, les animaux du joueur
std::vector<Piece *> pieces; std::vector<Piece *> pieces;
public: public:

9
includes/PieceSafari.hpp Normal file
View file

@ -0,0 +1,9 @@
#pragma once
#include "Piece.hpp"
class PieceSafari : public Piece {
public:
PieceSafari(std::string categorie);
virtual ~PieceSafari();
};

View file

@ -0,0 +1,12 @@
#pragma once
#include "Plateau.hpp"
class PlateauSafari : public Plateau {
public:
PlateauSafari(int taille);
virtual ~PlateauSafari();
};

View file

@ -2,19 +2,33 @@
#include <iostream> #include <iostream>
#include "../includes/Joueur.hpp"
#include "../includes/PlateauSafari.hpp"
#include "../includes/PieceSafari.hpp"
class Safari { class Safari {
friend std::ostream &operator<<(std::ostream &, const Safari &); friend std::ostream &operator<<(std::ostream &, const Safari &);
// Plateau de jeu // Plateau de jeu
PlateauSafari plateau;
//Barrières
std::vector<PieceSafari *> barrieres;
// Joueurs // Joueurs
Joueur &joueur1;
Joueur &joueur2;
Joueur &joueur3;
Joueur &joueurCourant;
public: public:
Safari(); // constructor Safari(Joueur &joueur1, Joueur &joueur2, Joueur &joueur3); // constructor
virtual ~Safari(); // destructor virtual ~Safari(); // destructor
Safari(const Safari &); // copy constructor Safari(const Safari &); // copy constructor
const Safari &operator=(const Safari &); // copy assignement const Safari &operator=(const Safari &); // copy assignement
// Fonction d'initialisation du jeu
void choixAnimal(std::string animal);
}; };
// Fonction d'initialisation du jeu

7
src/PieceSafari.cpp Normal file
View file

@ -0,0 +1,7 @@
#include "../includes/PieceSafari.hpp"
PieceSafari::PieceSafari(const std::string cat) : Piece(cat) {
std::cout << "pièce - " << cat << "\n";
}
PieceSafari::~PieceSafari() {}

5
src/PlateauSafari.cpp Normal file
View file

@ -0,0 +1,5 @@
#include "../includes/PlateauSafari.hpp"
PlateauSafari::PlateauSafari(int t) : Plateau(t) {}
PlateauSafari::~PlateauSafari() {}

View file

@ -1,10 +1,19 @@
#include "../includes/Safari.hpp" #include "../includes/Safari.hpp"
Safari::Safari() { std::cout << "safari\n"; } Safari::Safari(Joueur &j1, Joueur &j2, Joueur &j3)
: plateau(PlateauSafari(8)), joueur1{j1}, joueur2{j2}, joueur3{j3}, joueurCourant{j1}{
for(int i=0;i<50;i++)
barrieres.push_back(new PieceSafari("barriere"));
}
Safari::~Safari() {} Safari::~Safari() {}
Safari::Safari(const Safari &) {} Safari::Safari(const Safari &src)
: plateau(PlateauSafari(8)), 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"));
}
const Safari &Safari::operator=(const Safari &src) { const Safari &Safari::operator=(const Safari &src) {
if (this == &src) { if (this == &src) {
@ -13,3 +22,11 @@ const Safari &Safari::operator=(const Safari &src) {
return *this; return *this;
} }
void Safari::choixAnimal(std::string animal){
if(animal!="éléphant" || animal!="rhinocéros" || animal!="lion")
throw std::invalid_argument("Animal non valide");
if(joueurCourant.getPieces().empty())
for(int i=0;i<3;i++)
joueurCourant.ajoutPiece(new PieceSafari(animal));
}