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
// 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;
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 "../includes/Joueur.hpp"
#include "../includes/PlateauSafari.hpp"
#include "../includes/PieceSafari.hpp"
class Safari {
friend std::ostream &operator<<(std::ostream &, const Safari &);
// Plateau de jeu
PlateauSafari plateau;
//Barrières
std::vector<PieceSafari *> barrieres;
// Joueurs
Joueur &joueur1;
Joueur &joueur2;
Joueur &joueur3;
Joueur &joueurCourant;
public:
Safari(); // constructor
Safari(Joueur &joueur1, Joueur &joueur2, Joueur &joueur3); // constructor
virtual ~Safari(); // destructor
Safari(const Safari &); // copy constructor
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"
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(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) {
if (this == &src) {
@ -13,3 +22,11 @@ const Safari &Safari::operator=(const Safari &src) {
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));
}