Cada célula en un autómata celular realista solo necesita un bit para representarla, ya que solo puede estar viva o muerta. Eso significa que solo hay dos colores; bastante aburrido.
Las imágenes normales tienen 24 bits por píxel (8 en cada uno de RGB). ¡Esto significa que en una imagen normal con píxeles como celdas puede simular 24 juegos realistas a la vez!
Reto
Su tarea es escribir un programa que aplicará una generación de las reglas de un autómata celular realista a una imagen de profundidad de 24 bits (en cualquier formato conocido que desee), y generará la imagen resultante.
Cada una de las 24 capas utilizará el mismo conjunto de reglas realista, estrictamente dentro de su propia capa. Las 24 capas no interactúan entre sí.
también
- Los ceros son células muertas y los unos son células vivas.
- Las condiciones de contorno son periódicas (formando un toro).
- Cualquier dimensión de imagen debería funcionar.
De entrada y salida
Su programa necesita tomar 3 argumentos, a través de stdin o línea de comando (o el equivalente más cercano de su idioma):
- El nombre del archivo de imagen de entrada.
- Una cadena de los dígitos 0 a 8 en orden creciente que denota cuando nacen nuevas celdas:
- Si el dígito d está en la cuerda y luego las células muertas cobran vida cuando tienen d vecinos de vida.
- Ejemplo: vida
3
normal : las células muertas con exactamente 3 vecinos vivos cobran vida.
- Una cadena de los dígitos del 0 al 8 en orden creciente que indica cuándo sobreviven las celdas existentes:
- Si el dígito d está en la cadena, las células vivas con d vecinos vivos sobreviven hasta la próxima generación, de lo contrario mueren.
- Ejemplo:
23
es vida normal: solo las celdas con exactamente 2 o 3 vecinos sobreviven a la siguiente ronda.
Tenga en cuenta que siempre se usa el vecindario de Moore . Lee esto o esto para obtener más información sobre lo que define con precisión un autómata realista y muchos conjuntos de reglas interesantes.
La imagen de salida de 1 generación posterior debe mostrarse o guardarse como out.png
( bmp
o lo que sea).
Sumisión
El código más corto en bytes gana.
Usted está obligado a incluir al menos una imagen de prueba y sus tres generaciones posteriores inmediatas para algunos conjunto de reglas no trivial. Usa tu avatar y las reglas de vida normales si no puedes pensar en algo mejor.
Si lo desea, puede usar esta pistola de planeador Gosper donde los únicos bits vivos están en la capa verde 128 (solo es seguro que funcione en la vida normal):
Publicar secuencias interesantes o incluso animaciones es muy recomendable.