From c46da961b50f5fb0ccf33ef0107786cfeb0cc812 Mon Sep 17 00:00:00 2001 From: Martin Euzenat Date: Sat, 20 Jan 2024 01:03:57 -0500 Subject: [PATCH] Inlining accesseur GOLTeam --- GPA675Lab1GOL/GOLTeamH.cpp | 74 +------------------------------------- GPA675Lab1GOL/GOLTeamH.h | 16 ++++----- 2 files changed, 9 insertions(+), 81 deletions(-) diff --git a/GPA675Lab1GOL/GOLTeamH.cpp b/GPA675Lab1GOL/GOLTeamH.cpp index c7cf7a2..88282fc 100644 --- a/GPA675Lab1GOL/GOLTeamH.cpp +++ b/GPA675Lab1GOL/GOLTeamH.cpp @@ -3,82 +3,10 @@ - -//! \brief Accesseur retournant la largeur de la grille de simualtion. - //! - //! \return La largeur de la grille. - //! -size_t GOLTeamH::width() const -{ - return mData.width(); -} +//Inlining des acesseur dans GOLTeam.h -//! \brief Accesseur retournant la hauteur de la grille de simualtion. - //! - //! \return La hauteur de la grille. - //! -size_t GOLTeamH::height() const -{ - return mData.height(); -} - -//! \brief Accesseur retournant le nombre total de cellules de la grille - //! de simualtion. - //! - //! \return Le nombre total de cellules de la grille. -size_t GOLTeamH::size() const -{ - return mData.size(); -} - -//! \brief Accesseur retournant l'état d'une cellule. - //! - //! \details Cette fonction ne valide pas les entrées pour une raison de - //! performance. - //! L'origine est le coin supérieur gauche de la grille. - //! - //! \param x La coordonnée en x de la cellule. - //! \param y La coordonnée en y de la cellule. - //! \return L'état de la cellule. -GOL::State GOLTeamH::state(int x, int y) const -{ - return mData.value(x, y); -} - -//! \brief Accesseur retournant la chaîne de caractères correspondant à - //! la règle courante. - //! - //! \details La chaîne de caractères est de la forme "B###/S###". - //! - //! \return La chaîne de caractères correspondant à la règle courante selon - //! le format `B###.../S###...`. - -std::string GOLTeamH::rule() const -{ - return mRule.value_or(std::move(std::string())); -} - -//! \brief Accesseur retournant la stratégie courante de gestion des bords. - //! - //! \return La stratégie courante de gestion des bords. -GOL::BorderManagement GOLTeamH::borderManagement() const -{ - return mBorderManagement.value_or(GOL::BorderManagement::immutableAsIs); -} - -//! \brief Accesseur retournant la couleur d'un état. - //! - //! \details Cette fonction retourne la couleur associée à l'état passé - //! en argument. - //! - //! \param state L'état dont on veut connaître la couleur. - //! \return La couleur associée à l'état. -GOL::Color GOLTeamH::color(State state) const -{ - return state == GOL::State::alive ? mAliveColor : mDeadColor; -} //! \brief Accesseurs retournant des informations générales sur la //! simulation en cours. diff --git a/GPA675Lab1GOL/GOLTeamH.h b/GPA675Lab1GOL/GOLTeamH.h index 4285a76..07573fb 100644 --- a/GPA675Lab1GOL/GOLTeamH.h +++ b/GPA675Lab1GOL/GOLTeamH.h @@ -12,13 +12,14 @@ constexpr unsigned char MAX_ALPHA = 255; class GOLTeamH : public GOL { public: - size_t width() const override; - size_t height() const override; - size_t size() const override; - State state(int x, int y) const override; //details L'état d'une cellule peut être mort ou vivant. - std::string rule() const override; - BorderManagement borderManagement() const override; - Color color(State state) const override; + size_t width() const override { return mData.width(); } + size_t height() const override { return mData.height(); } + size_t size() const override { return mData.size(); } + State state(int x, int y) const override { return mData.value(x, y); } //details L'état d'une cellule peut être mort ou vivant. + std::string rule() const override { return mRule.value_or(std::move(std::string())); } //details La règle est une chaîne de caractères qui contient les règles de survie et de naissance. + BorderManagement borderManagement() const override { return mBorderManagement.value_or(GOL::BorderManagement::immutableAsIs);} //details La gestion des bords est une énumération qui contient les différents types de gestion des bords. + Color color(State state) const override { return state == GOL::State::alive ? mAliveColor : mDeadColor; } + //Accesseur dans le .cpp Statistics statistics() const override; ImplementationInformation information() const override; @@ -40,7 +41,6 @@ private: std::optional mBorderManagement; std::optional mIteration; - // On utilise un bitset qui contient les règles de chaque nombre. std::bitset<9> mParsedRuleRevive, mParsedRuleSurvive; GridTeamH mData;