Kamel Ghabte · Cours · Gratuit

Automates cellulaires

Simuler le Game of Life de Conway en p5.js.

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 →