Dans les automates élémentaires de Wolfram on ne considère que 3 cases et non pas 5 comme dans le post de @Marge. Avec 3 cases on a 8 combinaisons 111,110,101,100,011,010,001,000 et pour chacune de ces combinaisons on décide si la case centrale (par exemple 111) sera en vie ou morte à l’étape suivante. Ca fait 28 = 256 possibilités. Avec 5 cases, si on ne regarde plus seulement le nombre de voisins vivants mais toutes les combinaisons possibles 11111,11110,…, 00010,00001 soit 32 combinaisons et que l’on décide pour chacune ce que devient la cellule centrale (par exemple 11100) à l’étape suivante, ça fait 232= 4294967296 combinaisons ! Donc il y a certainement plein de motifs intéressants à découvrir si on ne se borne pas à juste compter les voisins vivants
Le cas particulier de @Marge parmi les 4294967296 combinaisons correspond au nombre 393113224 :
from kandinsky import *
from random import randint
T = 2
def go(r = 393113224):
lig = 220 // T
col = 320 // T
# première ligne aléatoire
for x in range(col):
if randint(0,1) == 1:
fill_rect(T*x,0,T,T,(0,0,0))
rb = "0"*32 + bin(r)[2:] # règle binaire (32 bits)
for y in range(lig):
for x in range(2,col-2):
n = (
16*ecran(x-2,y) +
8*ecran(x-1,y) +
4*ecran(x,y) +
2*ecran(x+1,y) +
ecran(x+2,y)
)
if rb[-1-n] == "1":
fill_rect(T*x, T*(y+1), T, T, (0,0,0))
def ecran(x,y):
v = sum(get_pixel(T*x,T*y))
return 1 if v == 0 else 0
go()
Voici quelques visuels supplémentaires à ceux donnés sur le forum :





































