fractalkitty looking for math? fractalkitty.com

100 days of code

gameOfLifeTake1

#random#trig#grid#interactive#animation#accumulates#math#cellular-automata

dArraypolygonanglerandomDeadswitchDead

let cnt=0,n=256;
let dArray=[];
function setup(){
  createCanvas(600,600);
  r=20;
  co=floor(width/(2*r));
  ro=floor(height/(2*r));
  randomDead();
  frameRate(1);
  background(40);
}
function draw(){
  scale(0.6,0.6)
  stroke(255);
  translate(width/3+40,width/2-25);
  rotate(PI/6);
  cnt=0;
  for (let j=0;j<=co;j++){//columns
    for (let i=ro;i>=0;i--){//rows
      x=r*j*1.5;
      y=-r*12+r*sqrt(3)*i+r*j/1.15;
      if(dArray[cnt]===0){
        fill(0,0,0);
      }
      if(dArray[cnt]===1){
        fill(0,i*20,200+j*2)
      }
      stroke(0)
      polygon(x,y,r,6);
      fill(20)
      cnt=cnt+1  
  }
}
  switchDead()
}
function polygon(x, y, radius, npoints) {
  let angle = TWO_PI / npoints;
  beginShape();
  for (let a = 0; a < TWO_PI; a += angle) {
    let sx = x + cos(a) * radius;
    let sy = y + sin(a) * radius;
    vertex(sx, sy);
  }
  endShape(CLOSE);
}

function randomDead(){
  n = (co+1)*(ro+1);
  dArray=[]
  for(let i=0;i<n;i++){
    tmp=random(-1,1);
    if(tmp<=0){
      dArray[i]=1;
    }
    if(tmp>0){
      dArray[i]=0;
    }
  }
}

function switchDead(){
  tmp =0
    for(let k=0;k<n;k++){
      if(dArray[k]===true){
        tmp=tmp+1;
      }
    }
  if(tmp===0){
  }
  cnt1=0
  for (let j=0;j<=co;j++){//columns
    for (let i=ro;i>=0;i--){//rows
      if(j!=0&&i!=0&&i!=ro&&j!=co){
      sumd = dArray[cnt1+co+1]+dArray[cnt1+co+2]+dArray[cnt1-co-1]+dArray[cnt1-co-2]+dArray[cnt1+1]+dArray[cnt1-1];  
        print(cnt1,sumd)
      }
      if(i===0&&j!=0&&j!=co){
        sumd = dArray[cnt1+co+1]+dArray[cnt1-co-1]+dArray[cnt1-co-2]+dArray[cnt1-1]; 
      }
      if(i===15&&j!=0&&j!=co){
        sumd = dArray[cnt1+co+1]+dArray[cnt1-co-1]+dArray[cnt1+co+2]+dArray[cnt1+1]; 
      }
      if(j===15&&i!=0&&i!=co){
        sumd = dArray[cnt1-co-1]+dArray[cnt1-co-2]+dArray[cnt1+1]+dArray[cnt1-1]; 
      }
      if(j===0&&i!=0&&i!=co){
        sumd = dArray[cnt1+co+1]+dArray[cnt1+co+2]+dArray[cnt1+1]+dArray[cnt1-1];   
      }
      if(i===0&&j===0){
        sumd = dArray[cnt1+co+1]+dArray[cnt1+1];  
      }
      if(i===0&&j===15){
        sumd = dArray[cnt1-1]+dArray[cnt1-co-1]+dArray[cnt1-co-2];  
      }
      if(i===15&&j===0){
        sumd = dArray[cnt1+1]+dArray[cnt1+co+1]+dArray[cnt1+co+2];  
      }
      if(i===15&&j===15){
        sumd = dArray[cnt1+1]+dArray[cnt1-co-1];  
      }
      if(dArray[cnt1]===1  && (sumd===6|| sumd===5||sumd===1|| sumd===0)){
        dArray[cnt1]=0;
      }else if(dArray[cnt1]===0 && (sumd===4||  sumd===3)){
        dArray[cnt1]=1;
      }
      cnt1=cnt1+1  
  }
}
}
function mousePressed(){
    randomDead();
}