"foreverdead" et "foreveralive" working
This commit is contained in:
commit
4df1d982d1
@ -220,7 +220,30 @@ bool GOLTeamH::setRule(std::string const& rule)
|
||||
//! **grille**.
|
||||
void GOLTeamH::setBorderManagement(BorderManagement borderManagement)
|
||||
{
|
||||
mBorderManagement = borderManagement;
|
||||
mBorderManagement = borderManagement; // On assigne la nouvelle stratégie
|
||||
// Logique spécifique à chaque stratégie de gestion de bord
|
||||
switch (borderManagement)
|
||||
{
|
||||
case BorderManagement::immutableAsIs:
|
||||
// Aucune action nécessaire, les cellules du contour restent inchangées
|
||||
break;
|
||||
|
||||
case BorderManagement::foreverDead:
|
||||
mData.setBorderValue(State::dead);
|
||||
break;
|
||||
|
||||
case BorderManagement::foreverAlive:
|
||||
mData.setBorderValue(State::alive);
|
||||
break;
|
||||
|
||||
case BorderManagement::warping:
|
||||
|
||||
break;
|
||||
|
||||
case BorderManagement::mirror:
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -133,3 +133,22 @@ void GridTeamH::randomize(double percentAlive)
|
||||
i = CellType::dead;
|
||||
}
|
||||
}
|
||||
|
||||
//Fonction qui attribue CellType aux case de la grille présent en bordure
|
||||
//sans changer les autres case
|
||||
void GridTeamH::setBorderValue(CellType initValue)
|
||||
{
|
||||
|
||||
// Boucle pour parcourir chaque ligne de la grille
|
||||
for (size_t row = 0; row < mHeight; row++) {
|
||||
// Boucle pour parcourir chaque colonne de la grille
|
||||
for (size_t col = 0; col < mWidth; col++) {
|
||||
// Calcul de l'index dans la grille bidimensionnelle
|
||||
size_t index = row * mWidth + col;
|
||||
|
||||
// Alternance de la valeur pour chaque cellule en fonction de la ligne et de la colonne
|
||||
if (row == 0 || row == mHeight - 1 || col == 0 || col == mWidth - 1)
|
||||
mData[index] = initValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -49,10 +49,11 @@ public:
|
||||
void fillAternately(CellType initValue);
|
||||
void randomize(double percentAlive);
|
||||
|
||||
private: //
|
||||
DataType mData; // Il y a des attributs essentiels au fonctionnement de cette classe.
|
||||
size_t mWidth, mHeight; // À vous de les déterminer.
|
||||
// Pour la génération de nombres aléatoires
|
||||
void setBorderValue(CellType value);
|
||||
|
||||
private:
|
||||
DataType mData;
|
||||
size_t mWidth, mHeight; //hauteur et largeur de la grid
|
||||
std::random_device mRandomDevice;
|
||||
std::mt19937 mEngine;
|
||||
std::uniform_real_distribution<> mDistribution;
|
||||
|
Loading…
Reference in New Issue
Block a user