tout les jeux sont des jeux
This commit is contained in:
parent
627f91e807
commit
a9293d1305
8 changed files with 41 additions and 25 deletions
|
@ -1,18 +1,16 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../Joueur.hpp"
|
#include "../Jeu.hpp"
|
||||||
#include "PlateauButin.hpp"
|
#include "PlateauButin.hpp"
|
||||||
|
|
||||||
class Butin {
|
class Butin : private Jeu {
|
||||||
friend std::ostream &operator<<(std::ostream &, const Butin &);
|
friend std::ostream &operator<<(std::ostream &, const Butin &);
|
||||||
|
|
||||||
// Plateau de jeu
|
// Plateau de jeu
|
||||||
PlateauButin plateau;
|
PlateauButin plateau;
|
||||||
|
|
||||||
// Joueurs
|
// Joueurs
|
||||||
Joueur &joueur1;
|
|
||||||
Joueur &joueur2;
|
Joueur &joueur2;
|
||||||
Joueur &joueurCourant;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Butin(Joueur &joueur1, Joueur &joueur2); // constructor
|
Butin(Joueur &joueur1, Joueur &joueur2); // constructor
|
||||||
|
|
|
@ -1,17 +1,16 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "../Jeu.hpp"
|
||||||
#include "PlateauDames.hpp"
|
#include "PlateauDames.hpp"
|
||||||
|
|
||||||
class Dames {
|
class Dames : private Jeu {
|
||||||
friend std::ostream &operator<<(std::ostream &, const Dames &);
|
friend std::ostream &operator<<(std::ostream &, const Dames &);
|
||||||
|
|
||||||
// Plateau de jeu
|
// Plateau de jeu
|
||||||
PlateauDames plateau;
|
PlateauDames plateau;
|
||||||
|
|
||||||
// Joueurs
|
// Joueurs
|
||||||
Joueur &joueur1;
|
|
||||||
Joueur &joueur2;
|
Joueur &joueur2;
|
||||||
Joueur &joueurCourant;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Dames(Joueur &joueur1, Joueur &joueur2); // constructor
|
Dames(Joueur &joueur1, Joueur &joueur2); // constructor
|
||||||
|
|
19
includes/Jeu.hpp
Normal file
19
includes/Jeu.hpp
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Joueur.hpp"
|
||||||
|
|
||||||
|
class Jeu {
|
||||||
|
friend std::ostream &operator<<(std::ostream &, const Jeu &);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// Joueurs, au moins un joueur
|
||||||
|
Joueur &joueur1;
|
||||||
|
Joueur &joueurCourant;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Jeu(Joueur &j1); // constructor
|
||||||
|
virtual ~Jeu(); // destructor
|
||||||
|
|
||||||
|
// Fonction d'initialisation d'un jeu
|
||||||
|
virtual void init() = 0;
|
||||||
|
};
|
|
@ -1,26 +1,24 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../Joueur.hpp"
|
#include "../Jeu.hpp"
|
||||||
#include "PieceSafari.hpp"
|
#include "PieceSafari.hpp"
|
||||||
#include "PlateauSafari.hpp"
|
#include "PlateauSafari.hpp"
|
||||||
|
|
||||||
class Safari {
|
class Safari : private Jeu {
|
||||||
friend std::ostream &operator<<(std::ostream &, const Safari &);
|
friend std::ostream &operator<<(std::ostream &, const Safari &);
|
||||||
|
|
||||||
// Plateau de jeu
|
// Plateau de jeu
|
||||||
PlateauSafari plateau;
|
PlateauSafari plateau;
|
||||||
|
|
||||||
// Joueurs
|
// Joueurs
|
||||||
Joueur *joueur1;
|
Joueur &joueur2;
|
||||||
Joueur *joueur2;
|
|
||||||
Joueur *joueur3;
|
Joueur *joueur3;
|
||||||
Joueur &joueurCourant;
|
|
||||||
|
|
||||||
// Barrières
|
// Barrières
|
||||||
std::vector<PieceSafari *> barrieres;
|
std::vector<PieceSafari *> barrieres;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Safari(Joueur *joueur1, Joueur *joueur2,
|
Safari(Joueur &joueur1, Joueur &joueur2,
|
||||||
Joueur *joueur3 = nullptr); // constructor
|
Joueur *joueur3 = nullptr); // constructor
|
||||||
virtual ~Safari(); // destructor
|
virtual ~Safari(); // destructor
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
#include "../../includes/Butin/Butin.hpp"
|
#include "../../includes/Butin/Butin.hpp"
|
||||||
|
|
||||||
Butin::Butin(Joueur &j1, Joueur &j2)
|
Butin::Butin(Joueur &j1, Joueur &j2)
|
||||||
: plateau(PlateauButin()), joueur1{j1}, joueur2{j2}, joueurCourant{j1} {
|
: Jeu(j1), plateau(PlateauButin()), joueur2{j2} {
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
Butin::~Butin() {}
|
Butin::~Butin() {}
|
||||||
|
|
||||||
Butin::Butin(const Butin &src)
|
Butin::Butin(const Butin &src)
|
||||||
: plateau(PlateauButin()), joueur1{src.joueur1}, joueur2{src.joueur2},
|
: Jeu(src.joueur1), plateau(PlateauButin()), joueur2{src.joueur2} {
|
||||||
joueurCourant{src.joueurCourant} {
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
#include "../../includes/Dames/PieceDames.hpp"
|
#include "../../includes/Dames/PieceDames.hpp"
|
||||||
|
|
||||||
Dames::Dames(Joueur &j1, Joueur &j2)
|
Dames::Dames(Joueur &j1, Joueur &j2)
|
||||||
: plateau(PlateauDames(j1, j2)), joueur1(j1), joueur2(j2),
|
: Jeu(j1), plateau(PlateauDames(j1, j2)), 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,8 +20,8 @@ Dames::Dames(Joueur &j1, Joueur &j2)
|
||||||
Dames::~Dames() {}
|
Dames::~Dames() {}
|
||||||
|
|
||||||
Dames::Dames(const Dames &src)
|
Dames::Dames(const Dames &src)
|
||||||
: plateau(PlateauDames(src.joueur1, src.joueur2)), joueur1{src.joueur1},
|
: Jeu(src.joueur1), plateau(PlateauDames(src.joueur1, src.joueur2)),
|
||||||
joueur2{src.joueur2}, joueurCourant{src.joueurCourant} {
|
joueur2{src.joueur2} {
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
5
src/Jeu.cpp
Normal file
5
src/Jeu.cpp
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#include "../includes/Jeu.hpp"
|
||||||
|
|
||||||
|
Jeu::Jeu(Joueur &j1) : joueur1(j1), joueurCourant(j1) {}
|
||||||
|
|
||||||
|
Jeu::~Jeu() {}
|
|
@ -3,9 +3,8 @@
|
||||||
/* Contrairement aux autres jeux ici on donne des pointeurs et pas des
|
/* Contrairement aux autres jeux ici on donne des pointeurs et pas des
|
||||||
* références vu que j3 peut ne pas exister (default to nullptr)
|
* références vu que j3 peut ne pas exister (default to nullptr)
|
||||||
* Je sais pas trop si c'est une bonne idée, à méditer */
|
* Je sais pas trop si c'est une bonne idée, à méditer */
|
||||||
Safari::Safari(Joueur *j1, Joueur *j2, Joueur *j3)
|
Safari::Safari(Joueur &j1, Joueur &j2, Joueur *j3)
|
||||||
: plateau(PlateauSafari()), joueur1{j1}, joueur2{j2}, joueur3{j3},
|
: Jeu(j1), plateau(PlateauSafari()), joueur2{j2}, joueur3{j3} {
|
||||||
joueurCourant{*j1} {
|
|
||||||
for (int i = 0; i < 50; i++) {
|
for (int i = 0; i < 50; i++) {
|
||||||
barrieres.push_back(new PieceSafari(PieceSafari::Barriere));
|
barrieres.push_back(new PieceSafari(PieceSafari::Barriere));
|
||||||
}
|
}
|
||||||
|
@ -14,8 +13,8 @@ Safari::Safari(Joueur *j1, Joueur *j2, Joueur *j3)
|
||||||
Safari::~Safari() {}
|
Safari::~Safari() {}
|
||||||
|
|
||||||
Safari::Safari(const Safari &src)
|
Safari::Safari(const Safari &src)
|
||||||
: plateau(PlateauSafari()), joueur1{src.joueur1}, joueur2{src.joueur2},
|
: Jeu(src.joueur1), plateau(PlateauSafari()), joueur2{src.joueur2},
|
||||||
joueur3{src.joueur3}, joueurCourant{src.joueurCourant} {
|
joueur3{src.joueur3} {
|
||||||
for (int i = 0; i < 50; i++) {
|
for (int i = 0; i < 50; i++) {
|
||||||
barrieres.push_back(new PieceSafari(PieceSafari::Barriere));
|
barrieres.push_back(new PieceSafari(PieceSafari::Barriere));
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue