Le concept
Un automate cellulaire est une grille où chaque cellule change d'état selon ses voisines. Le Game of Life (Conway, 1970) : une cellule vivante avec 2-3 voisins survit, une morte avec exactement 3 naît. Ces règles simples produisent une complexité émergente spectaculaire — gliders, oscillateurs, canons.
Le code
// Game of Life
let grid, next, cols, rows, sz = 6;
function setup() {
createCanvas(400, 280); cols=floor(width/sz); rows=floor(height/sz);
grid=Array.from({length:rows},()=>Array.from({length:cols},()=>random()>0.7?1:0));
next=Array.from({length:rows},()=>new Array(cols).fill(0));
frameRate(10);
}
function draw() {
background(11,15,20);
for(let j=0;j<rows;j++) for(let i=0;i<cols;i++){
if(grid[j][i]){noStroke();fill(55,227,195);rect(i*sz,j*sz,sz-1,sz-1);}
let n=0; for(let dj=-1;dj<=1;dj++) for(let di=-1;di<=1;di++){if(!dj&&!di)continue;let ni=(i+di+cols)%cols,nj=(j+dj+rows)%rows;n+=grid[nj][ni];}
next[j][i]=grid[j][i]?(n==2||n==3?1:0):(n==3?1:0);
}
[grid,next]=[next,grid];
}Pour aller plus loin
Explorez les autres cours gratuits sur la page Apprendre, ou réservez un appel pour discuter de votre projet.
Envie d'aller plus loin ?
Réserver un appel découverte →