Étape 6: créer
Cette étape concerne la création de la configuration initiale. Si vous utilisez C ++ 11, je pense que la meilleure façon de stocker l’automate comporte des vecteurs. De cette façon, la taille de l’automate est adaptable. Étant donné que les données stockées maintient une forme 2D, il est préférable de stocker l’automate comme un vecteur de dimension 2 (c'est-à-dire des vecteurs dans un vecteur). Avec cette configuration, l’automate est considérée comme une grille. Chaque ligne de la grille est stocké comme un vecteur. Chaque vecteur ligne est ensuite stocké dans le principal vecteur. Supposons que nous voulons commencer avec une cellule de 10 par 10 grille de cellule. La déclaration de vecteur ressemblerait à ce qui suit :
vecteur < vecteur > grille (vecteur 10,(10, 0));
Cette déclaration ne crée une grille de 10 x 10, mais lance également chaque valeur de la cellule 0 (ou morts). Maintenant, vous pouvez implémenter quelque code pour modifier les valeurs des cellules vivantes au départ. Par exemple, supposons que je veux les cellules initialement vivants pour former un solid carré sur la grille (à partir de leurs différences de coloration comme noté précédemment), alors je voudrais implémenter une boucle qui ressemble à ce qui suit :
pour (int i = 2; i < 8; i ++)
{
pour (int k = 2; k < 8; k ++)
grille [i] [k] = 1 ;
}
Cela crée le vecteur souhaité appelé grille, que je peux ensuite utiliser pour stocker l’automate cellulaire. Notez que j’ai laissé les deux couches de cellules dans un état de mort. Ces couches sont essentiels à l’automate. Je vais leur expliquer à l’étape 7. Comme une fonction distincte, appelée newAutomaton(), ce segment du programme ressemblerait à ce qui suit :
vecteur < vecteur > newAutomaton()
{
vecteur < vecteur > grille (vecteur 10,(10, 0));
pour (int i = 2; i < 8; i ++)
{
pour (int k = 2; k < 8; k ++)
grille [i] [k] = 1 ;
}
retourner la grille ;
}
Ce segment peut facilement être adapté pour répondre aux exigences de la tâche, mais il sert de base pour le composant de création de la simulation.