Gère l'initialisation
This commit is contained in:
parent
8d3b8a7668
commit
59c232ac15
3 changed files with 34 additions and 10 deletions
|
@ -3,6 +3,8 @@
|
|||
#include "../Jeu.hpp"
|
||||
#include "PlateauButin.hpp"
|
||||
|
||||
struct PieceButin;
|
||||
|
||||
class Butin : private Jeu {
|
||||
friend std::ostream &operator<<(std::ostream &, const Butin &);
|
||||
|
||||
|
@ -22,6 +24,8 @@ class Butin : private Jeu {
|
|||
|
||||
enum Etape etape;
|
||||
|
||||
PieceButin *getPiece(const int x, const int y) const;
|
||||
|
||||
public:
|
||||
Butin(Joueur &joueur1, Joueur &joueur2); // constructor
|
||||
virtual ~Butin(); // destructor
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
#pragma once
|
||||
|
||||
#include "../Piece.hpp"
|
||||
#include "Butin.hpp"
|
||||
|
||||
struct PieceButin : public Piece {
|
||||
friend Butin;
|
||||
|
||||
enum Categorie {
|
||||
Jaune = 1,
|
||||
Rouge = 2,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "../../includes/Butin/Butin.hpp"
|
||||
#include "../../includes/Butin/PieceButin.hpp"
|
||||
#include "../../includes/Ecran.hpp"
|
||||
|
||||
Butin::Butin(Joueur &j1, Joueur &j2)
|
||||
|
@ -14,6 +15,10 @@ std::ostream &operator<<(std::ostream &out, const Butin &data) {
|
|||
return out;
|
||||
}
|
||||
|
||||
PieceButin *Butin::getPiece(const int x, const int y) const {
|
||||
return dynamic_cast<PieceButin *>(plateau.getPiece(x, y));
|
||||
}
|
||||
|
||||
void Butin::init() {
|
||||
plateau.initialiserPlateau();
|
||||
|
||||
|
@ -47,36 +52,48 @@ void Butin::event(const int x, const int y) {
|
|||
}
|
||||
|
||||
switch (etape) {
|
||||
case (Etape::ChoixJ1):
|
||||
case (Etape::ChoixJ1): {
|
||||
// Clic du J1
|
||||
// TODO: Vérifier que la pièce est jaune
|
||||
if (true) {
|
||||
// TODO: retirer une pièce
|
||||
// Vérifier que la pièce est jaune
|
||||
if (getPiece(posCurseur.first, posCurseur.second)->points ==
|
||||
PieceButin::Jaune) {
|
||||
|
||||
// Retire la pièce
|
||||
plateau.modifierPlateau(posCurseur.first, posCurseur.second, nullptr);
|
||||
|
||||
// On passe à l'étape suivante
|
||||
etape = ChoixJ2;
|
||||
Ecran::printMessage(
|
||||
"Joueur 2, retirez une piece jaune en cliquant dessus.");
|
||||
} else {
|
||||
Ecran::printMessage("Joueur 1, retirez une piece jaune en cliquant "
|
||||
"dessus. Mauvaise Pièce.");
|
||||
}
|
||||
break;
|
||||
case ChoixJ2:
|
||||
}
|
||||
case ChoixJ2: {
|
||||
// Clic du J2
|
||||
// TODO: Vérifier que la pièce est jaune
|
||||
if (true) {
|
||||
// TODO: retirer une pièce
|
||||
// Vérifier que la pièce est jaune
|
||||
if (getPiece(posCurseur.first, posCurseur.second)->points ==
|
||||
PieceButin::Jaune) {
|
||||
// Retire la pièce
|
||||
plateau.modifierPlateau(posCurseur.first, posCurseur.second, nullptr);
|
||||
|
||||
// On passe à l'étape suivante
|
||||
etape = EnJeu;
|
||||
}
|
||||
break;
|
||||
case EnJeu:
|
||||
}
|
||||
case EnJeu: {
|
||||
// TODO
|
||||
break;
|
||||
case Fini:
|
||||
}
|
||||
case Fini: {
|
||||
// TODO: Afficher le nom du gagnant
|
||||
Ecran::printMessage("Bravo !");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Texte de debug
|
||||
std::cout << "Clic souris @ (" << x << ", " << y << ") aka ("
|
||||
|
|
Reference in a new issue