This repository has been archived on 2024-01-18. You can view files and clone it, but cannot push or open issues or pull requests.
DamesEtCo/includes/Plateau.hpp

49 lines
1.4 KiB
C++
Raw Normal View History

#pragma once
#include "../includes/Piece.hpp"
2024-01-07 12:44:33 +01:00
#include "types.hpp"
#include <vector>
class Plateau {
friend std::ostream &operator<<(std::ostream &, const Plateau &);
2023-12-03 17:27:06 +01:00
protected:
// Tableau représentant le plateau de jeu
Piece ***plateau;
2023-12-13 20:39:18 +01:00
// Taille du plateau
2023-12-31 04:59:45 +01:00
const int taille;
2023-12-13 20:39:18 +01:00
// Piece actuellement selectionnée
Piece *selection;
public:
Plateau(const int taille); // constructor
virtual ~Plateau(); // destructor
// Fonction pour afficher le plateau (selon le jeu) vers une sortie
2024-01-06 18:18:51 +01:00
virtual void afficherPlateau(std::ostream &, const bool debug = false) const;
// Fonction pour modifier le plateau
void modifierPlateau(const int x, const int y, Piece *piece) const;
2023-12-31 03:36:35 +01:00
// Fonction pour bouger une pièce, renvoie les anciennes coordonnées de la
// pièce bougée (TODO: est-ce utile de renvoyer les anciennes coordonnées ?)
2024-01-07 12:44:33 +01:00
const Position moveSelection(const int x, const int y);
// Renvoie une pièce à une position donnnée
Piece *getPiece(const int x, const int y) const;
// Prend des coordonnées-écran et renvoie des coordonnées-jeu
2024-01-07 12:44:33 +01:00
const Position trouveCoordonnees(const int x, const int y) const;
// Renvoie la taille du plateau
int getTaille() const;
// Change la pièce selectionnée
void modifierSelection(const int x, const int y);
// Renvoie la liste des pièces du plateau
std::vector<const Piece *> getPieces() const;
};