Étape 8: vérifier
Cette étape garantit que deux couches tampons demeurent autour de l’automate central. La fonction de contrôle doit s’exécuter après chaque mise à jour. Il fonctionne en vérifiant les deux couches de cellules vivantes. S’il trouve au moins un, il exécute une sous-routine pour élargir l’automate par une couche de cellules mortes. Le code de cette fonction intitulée checkVec() ressemblerait à ce qui suit.
vecteur < vecteur > checkVec (vecteur < vecteur > grille)
{
int size=grid.size() ;
int sumElementsOuter = 0 ;
for(vector::Iterator j=Grid[0].Begin();j!=Grid[0].end();j++)
sumElementsOuter += * j ;
for(vector::Iterator k=Grid[size-1].Begin();k!=Grid[size-1].end();k++)
+= sumElementsOuter * k ;
pour (int m = 1; m
sumElementsOuter = grille [m] [0] + grille [m] [Taille-1] + sumElementsOuter ;
additionner la somme des États dans le droit de la couche avant de l’extérieur
int sumElementsIn = 0 ;
for(vector::Iterator x=Grid[1].Begin();x!=Grid[1].end();++x)
sumElementsIn += * x ;
for(vector::Iterator y=Grid[size-2].Begin();y!=Grid[size-2].end();++y)
+= sumElementsIn * y ;
pour (int m = 2 m
sumElementsIn = grille [m] [1] + grille [m] [taille-2] + sumElementsIn ;
if(sumElementsOuter>0)
{
ceignez-vous doit être mis à jour pour avoir deux nouvelles couches extérieures
Grid.Insert(Grid.Begin(), vector (taille, 0)) ;
Grid.Insert(Grid.Begin(), vector (taille, 0)) ;
Grid.push_back (vector (taille, 0)) ;
Grid.push_back (vector (taille, 0)) ;
int rows2 = 0 ;
col2 int = 0 ;
tandis que (rows2
{
Grid[rows2].Insert(Grid[rows2].Begin(), 0) ;
Grid[rows2].Insert(Grid[rows2].Begin(), 0) ;
Grid[rows2].push_back(0) ;
Grid[rows2].push_back(0) ;
rows2 ++ ;
}
}
d’autre if(sumElementsIn>0)
{
ceignez-vous doit être mis à jour pour avoir un nouveau couches extérieures
Grid.Insert(Grid.Begin(), vector (taille, 0)) ;
Grid.push_back (vector (taille, 0)) ;
int rows2 = 0 ;
tandis que (rows2
{
Grid[rows2].Insert(Grid[rows2].Begin(), 0) ;
Grid[rows2].push_back(0) ;
rows2 ++ ;
}
}
retourner la grille ;
}
Désolé si le formatage est désactivé. Toutes ces fonctions peuvent être trouvés ici où le code devrait être plus facile à lire. Notez également que certaines fonctions dépendent des itérateurs. Alors, n’oubliez pas d’inscrire la bibliothèque de l’itérateur à la directive include au début du programme.