Stap 8: Controleer
Deze stap zorgt u ervoor dat de twee lagen van de buffer blijven rond de centrale automaat. De check-functie moet uitvoeren na elke update. Het werkt door het controleren van de buitenste twee lagen voor levende cellen. Indien zij ten minste één vaststelt, draait het een subroutine uit te breiden van de automaat met een laag van dode cellen. De code voor deze functie met een adellijke titel checkVec() zou ongeveer als volgt uit.
vector < vector > checkVec (vector < vector > Raster)
{
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;
voor (int m = 1; m
sumElementsOuter = raster [m] [0] raster [m] [grootte-1] + sumElementsOuter;
de som van de Staten in de laag vlak voor de buitenste optellen
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;
voor (int m = 2; m
sumElementsIn = raster [m] [1] raster [m] [grootte-2] + sumElementsIn;
if(sumElementsOuter>0)
{
omgorden moet worden bijgewerkt om twee nieuwe buitenste lagen
grid.Insert(grid.begin(), vector (grootte, 0));
grid.Insert(grid.begin(), vector (grootte, 0));
grid.push_back (vector (grootte, 0));
grid.push_back (vector (grootte, 0));
int rows2 = 0;
int col2 = 0;
terwijl (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 ++;
}
}
anders if(sumElementsIn>0)
{
omgorden moet worden bijgewerkt om een nieuwe buitenste lagen
grid.Insert(grid.begin(), vector (grootte, 0));
grid.push_back (vector (grootte, 0));
int rows2 = 0;
terwijl (rows2
{
Grid[rows2].Insert(Grid[rows2].begin(), 0);
Grid[rows2].push_back(0);
rows2 ++;
}
}
retourneren van raster;
}
Sorry als de opmaak uitgeschakeld is. Al deze functies kunnen worden gevonden hier waar moet de code beter leesbaar. Merk ook op dat sommige functies op iterators vertrouwen. Dus, zorg ervoor dat de iterator-bibliotheek in de richtlijn opnemen aan het begin van het programma opnemen.