DisplayManager.cpp h - JulianKerignard/ProjetJeuDeLaVie_POO GitHub Wiki

Fichier DisplayManager.h

#ifndef DISPLAY_MANAGER_H
#define DISPLAY_MANAGER_H

#include "Grid.h"

// Classe abstraite DisplayManager
class DisplayManager {
public:
    // Destructeur virtuel
    virtual ~DisplayManager() = default;

    // Méthode virtuelle pure pour initialiser l'affichage
    virtual void initialize() = 0;

    // Méthode virtuelle pure pour mettre à jour l'affichage
    virtual void update(const Grid& grid) = 0;

    // Méthode virtuelle pure pour fermer l'affichage
    virtual void close() = 0;
};

#endif // DISPLAY_MANAGER_H

Documentation des Membres

  • Classe DisplayManager :
    • Une classe abstraite servant de base pour les différents gestionnaires d'affichage du Jeu de la Vie.
    • Méthodes virtuelles pures :
      • virtual void initialize() = 0 :
        • Méthode pure virtuelle pour initialiser l'affichage, à implémenter dans les classes dérivées.
      • virtual void update(const Grid& grid) = 0 :
        • Méthode pure virtuelle pour mettre à jour l'affichage en fonction de l'état de la grille, à implémenter dans les classes dérivées.
      • virtual void close() = 0 :
        • Méthode pure virtuelle pour fermer l'affichage, à implémenter dans les classes dérivées.

Fichier de Test test_ConsoleDisplay

Implémentation de la Classe test_ConsoleDisplay

Classe

  • class test_ConsoleDisplay : public DisplayManager :
    • Une classe de test dérivée de DisplayManager pour simuler un affichage en console.
class test_ConsoleDisplay : public DisplayManager {
public:
    // Initialisation de l'affichage console
    void initialize() override {
        std::cout << "Initialisation de l'affichage console" << std::endl;
    }

    // Mise à jour de l'affichage console
    void update(const Grid& grid) override {
        system("cls");  // Effacer la console (utiliser "clear" pour Linux)
        for (int y = 0; y < grid.getHeight(); y++) {
            for (int x = 0; x < grid.getWidth(); x++) {
                if (grid.getCellAt(x, y).getCurrentState() == CellState::ALIVE) {
                    std::cout << "1";
                } else {
                    std::cout << "2 ";
                }
            }
            std::cout << std::endl;
        }
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
    }

    // Fermeture de l'affichage console
    void close() override {
        std::cout << "Fermeture de l'affichage" << std::endl;
    }
};

Documentation des Membres

  • Classe test_ConsoleDisplay :
    • Une classe de test qui dérive de DisplayManager pour simuler un affichage en console. Utile pour les tests et la validation des fonctionnalités d'affichage du Jeu de la Vie.

    • Méthodes publiques :

      • void initialize() override :
        • Implemente la méthode pour initialiser l'affichage console.
      • void update(const Grid& grid) override :
        • Implemente la méthode pour mettre à jour l'affichage console. Efface la console et affiche l'état actuel de la grille.
      • void close() override :
        • Implemente la méthode pour fermer l'affichage console et afficher un message de fermeture.