Paso 6: crear
Este paso refiere a la creación de la configuración inicial. Si estás usando C ++ 11, creo que la manera más fácil de almacenar en el autómata consiste en vectores. Esta forma, el tamaño de los autómatas es adaptable. Puesto que los datos almacenados mantiene una forma de 2 dimensiones, lo mejor es almacenar el autómata como un vector de 2 dimensiones (es decir, vectores dentro de un vector). Con esta configuración, el autómata es visto como una cuadrícula. Cada fila de la cuadrícula se almacena como un vector. Cada vector fila a su vez se almacena en el vector principal. Supongamos que queremos empezar con una celda de 10 por 10 red de celular. La declaración de vector se asemejaría a lo siguiente:
vector < vector > red (vector 10,(10, 0));
Esta declaración no sólo crea una cuadrícula de 10 x 10 pero también inicia cada valor de celda en 0 (o muertos). Ahora puede ejecutar cualquier código para cambiar los valores de las células inicialmente vivas. Por ejemplo, supongamos que quiero las células inicialmente vivas para formar un cuadrado sólido en la red (a partir de sus diferencias de coloración, como se señaló antes), a continuación, se implemento un bucle que se asemeja a lo siguiente:
para (int i = 2; i < 8; i ++)
{
para (int k = 2; k < 8; k ++)
rejilla [i] [k] = 1;
}
Esto crea el vector deseado llamado rejilla, que puedo usar posteriormente para almacenar el autómata celular. Aviso de que he dejado las dos capas exteriores de células en un estado muerto. Estas capas son esenciales para el autómata. Les explico en el paso 7. Como una función separada llamada newAutomaton() este segmento del programa asemejaría a lo siguiente:
vector < vector > newAutomaton()
{
vector < vector > red (vector 10,(10, 0));
para (int i = 2; i < 8; i ++)
{
para (int k = 2; k < 8; k ++)
rejilla [i] [k] = 1;
}
volver a red;
}
Este segmento se puede adaptar fácilmente para cumplir con los requerimientos de la tarea, pero sirve como base para el componente de creación de la simulación.