2023-12-01 15:27:43 +01:00
|
|
|
#pragma once
|
2023-11-12 16:05:42 +01:00
|
|
|
|
2023-12-14 17:18:28 +01:00
|
|
|
#include "../includes/Piece.hpp"
|
2023-11-12 16:05:42 +01:00
|
|
|
|
|
|
|
class Plateau {
|
|
|
|
friend std::ostream &operator<<(std::ostream &, const Plateau &);
|
|
|
|
|
2023-12-03 17:27:06 +01:00
|
|
|
protected:
|
2023-11-21 12:33:04 +01:00
|
|
|
// Tableau représentant le plateau de jeu
|
|
|
|
Piece ***plateau;
|
2023-11-12 16:05:42 +01:00
|
|
|
|
2023-12-13 20:39:18 +01:00
|
|
|
// Taille du plateau
|
|
|
|
int taille;
|
|
|
|
|
2023-12-29 01:33:35 +01:00
|
|
|
// Piece actuellement selectionnée
|
|
|
|
Piece *selection;
|
|
|
|
|
2023-11-12 16:05:42 +01:00
|
|
|
public:
|
2023-12-14 17:09:27 +01:00
|
|
|
Plateau(const int taille); // constructor
|
|
|
|
virtual ~Plateau(); // destructor
|
2023-11-12 16:05:42 +01:00
|
|
|
|
2023-11-24 20:14:05 +01:00
|
|
|
// Fonction pour initialiser le plateau (selon le jeu)
|
2023-12-01 15:06:20 +01:00
|
|
|
// Seulement deux joueurs pour le jeu de dame uniquement, je suis pas sûre de
|
|
|
|
// comment initialiser la fonction autrement
|
2023-12-14 17:18:28 +01:00
|
|
|
virtual void initialiserPlateau() = 0;
|
2023-11-12 16:05:42 +01:00
|
|
|
|
2023-12-14 17:51:27 +01:00
|
|
|
// Fonction pour afficher le plateau (selon le jeu) vers une sortie
|
|
|
|
void afficherPlateau(std::ostream &, const bool debug = false) const;
|
2023-11-12 16:05:42 +01:00
|
|
|
|
|
|
|
// Fonction pour modifier le plateau
|
2023-12-29 01:33:35 +01:00
|
|
|
// Si piece = nullptr alors on retire la pièce du plateau
|
2023-12-14 17:09:27 +01:00
|
|
|
void modifierPlateau(const int x, const int y, Piece *piece) const;
|
2023-12-28 18:01:50 +01:00
|
|
|
|
2023-12-29 01:33:35 +01:00
|
|
|
// Renvoie une pièce à une position donnnée
|
2023-12-28 19:40:06 +01:00
|
|
|
Piece *getPiece(const int x, const int y) const;
|
|
|
|
|
2023-12-29 01:33:35 +01:00
|
|
|
// Prend des coordonnées-écran et renvoie des coordonnées-jeu
|
2023-12-28 18:01:50 +01:00
|
|
|
std::pair<int, int> trouveCoordonnees(const int x, const int y) const;
|
2023-12-28 18:26:52 +01:00
|
|
|
|
|
|
|
// Renvoie la taille du plateau
|
|
|
|
int getTaille() const;
|
2023-12-29 01:33:35 +01:00
|
|
|
|
|
|
|
// Change la pièce selectionnée
|
|
|
|
void modifierSelection(const int x, const int y);
|
2023-11-12 16:05:42 +01:00
|
|
|
};
|