كمال غابتي · دورة · مجاني

الأوتوماتا الخلوية

محاكاة لعبة الحياة لكونواي في p5.js.

المفهوم

الأوتوماتون الخلوي شبكة تتغير فيها كل خلية حسب جيرانها. لعبة الحياة (كونواي، 1970): خلية حية بـ 2-3 جيران تبقى، ميتة بـ 3 بالضبط تولد. قواعد بسيطة تنتج تعقيداً مذهلاً.

الكود

// 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];
}

للمزيد

استكشف الدورات المجانية الأخرى على صفحة التعلم، أو احجز مكالمة لمناقشة مشروعك.

هل تريد المزيد؟

← احجز مكالمة اكتشاف