Inlining accesseur GOLTeam

This commit is contained in:
Martin Euzenat 2024-01-20 01:03:57 -05:00
parent 23a7b7e72d
commit c46da961b5
2 changed files with 9 additions and 81 deletions

View File

@ -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.

View File

@ -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<BorderManagement> mBorderManagement;
std::optional<IterationType> mIteration;
// On utilise un bitset qui contient les règles de chaque nombre.
std::bitset<9> mParsedRuleRevive, mParsedRuleSurvive;
GridTeamH mData;