safari plateau colors, steps

This commit is contained in:
Mylloon 2024-01-06 19:20:42 +01:00
parent b3fa493702
commit 9a60ee5eb6
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
3 changed files with 82 additions and 7 deletions

View file

@ -9,4 +9,7 @@ public:
// Initialise le plateau du Safari
void initialiserPlateau() override;
// Fonction pour afficher le plateau vers une sortie
void afficherPlateau(std::ostream &, const bool debug = false) const override;
};

View file

@ -14,9 +14,33 @@ class Safari : private Jeu {
const Joueur &joueur2;
const Joueur *joueur3;
// Etape du jeu, pour savoir où on en est
enum Etape {
ChoixJ1 = 0,
ChoixJ2,
ChoixJ3,
EnJeu,
Fini,
};
// Où l'on se trouve dans le jeu, à quelle étape nous sommes
enum Etape etape;
// Barrières
std::vector<PieceSafari *> barrieres;
// Permet de transformer une Piece en PieceSafari
const PieceSafari *getPiece(const int x, const int y) const;
// Position curseur
const std::pair<const int, const int> getPosition() const override;
// Change de joueur courant
void changerJoueurCourant();
// Assignie un animal au joueur courant
void choixAnimal(const PieceSafari::Categorie animal);
public:
Safari(Joueur &joueur1, Joueur &joueur2,
Joueur *joueur3 = nullptr); // constructor
@ -27,10 +51,4 @@ public:
// Fonction d'évènement
void event(const int x, const int y) override;
// Position curseur
const std::pair<const int, const int> getPosition() const override;
// Fonction d'initialisation du jeu
void choixAnimal(const PieceSafari::Categorie animal);
};

View file

@ -1,9 +1,63 @@
#include "../../includes/Safari/PlateauSafari.hpp"
#include "../../includes/Ecran.hpp"
PlateauSafari::PlateauSafari() : Plateau(8) {}
PlateauSafari::~PlateauSafari() {}
void PlateauSafari::initialiserPlateau() {
// Au début, le plateau est vide
}
void PlateauSafari::afficherPlateau(std::ostream &out, const bool d) const {
const float tailleCellule = static_cast<float>(Ecran::largeur()) / taille;
// Cellule
sf::RectangleShape cell(sf::Vector2f(tailleCellule, tailleCellule));
// Couleurs
sf::Color jaune = sf::Color(255, 200, 40);
sf::Color marron = sf::Color(155, 60, 40);
for (int i = 0; i < taille; i++) {
for (int j = 0; j < taille; j++) {
const float x = i * tailleCellule;
const float y = j * tailleCellule;
// Position de la cellule et de la pièce
cell.setPosition(x, y);
if (d) {
out << "(" << x << ", " << y;
}
// Alternation des couleurs
if ((i + j) % 2 == 0) {
cell.setFillColor(jaune);
if (d) {
out << ", J), ";
}
} else {
cell.setFillColor(marron);
if (d) {
out << ", M), ";
}
}
// Dessine la cellule
Ecran::window.draw(cell);
// Dessine la piece
// TODO
}
if (d) {
out << "\n";
}
}
// Dessine les mur
// TODO
if (d) {
out << "---\n";
}
}