Paso 8: Compruebe
Este paso garantiza que dos capas de amortiguación que rodea el autómata central. La función de control se debe ejecutar después de cada actualización. Obras de control de las dos capas exteriores de células vivas. Si encuentra al menos uno, se ejecuta una subrutina para expandir al autómata por una capa de células muertas. El código de esta función bajo el título checkVec() se asemejaría a lo siguiente.
vector < vector > checkVec (vector < vector > red)
{
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;
para (int m = 1; m
sumElementsOuter = red [m] [0] + [m] [tamaño 1] la red + sumElementsOuter;
Añadir a la suma de los Estados en el derecho de la capa antes de la
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;
para (int m = 2; m
sumElementsIn = [m] [1] la red grid [m] [tamaño 2] + sumElementsIn;
if(sumElementsOuter>0)
{
GIRD deben actualizarse para tener dos capas exteriores nuevas
Grid.Insert(Grid.Begin(), vector (tamaño 0));
Grid.Insert(Grid.Begin(), vector (tamaño 0));
Grid.push_back (vector (tamaño 0));
Grid.push_back (vector (tamaño 0));
rows2 int = 0;
col2 int = 0;
mientras (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 ++;
}
}
otro if(sumElementsIn>0)
{
GIRD necesita actualizarse para tener uno nuevo capas externas
Grid.Insert(Grid.Begin(), vector (tamaño 0));
Grid.push_back (vector (tamaño 0));
rows2 int = 0;
mientras (rows2
{
Grid[rows2].Insert(Grid[rows2].Begin(), 0);
Grid[rows2].push_back(0);
rows2 ++;
}
}
volver a red;
}
Lo siento si el formato está desactivado. Todas estas funciones se pueden encontrar aquí donde el código debe ser más fácil de leer. También, tenga en cuenta que algunas de las funciones dependen de iteradores. Por lo tanto, asegúrese de incluir la biblioteca de iterador en la Directiva include al principio del programa.