Cellular_automata

9656 단어 processing

코드



cellular_automata.pde
int[] rules = {0,0,0,1,1,1,1,0};
int gen = 1;
color on = color(255);
color off = color(0);

void setup(){
  size(101,101);
  frameRate(8);
  background(0);
  set(width/2,0,on);
}

void draw(){
  for(int i = 1; i < width-1; i++){
    int left = get(i-1,gen-1);
    int me = get(i,gen-1);
    int right = get(i+1,gen-1);
    if(rules(left,me,right)==1){
      set(i,gen,on);
    }
  }

  gen++;
  if(gen > height-1){
    noLoop();
  }
}

int rules(color a,color b,color c){
  if((a == on) && (b==on) && (c ==on)){return rules[0];}
  if((a == on) && (b==on) && (c ==off)){return rules[1];}
  if((a == on) && (b==off) && (c ==on)){return rules[2];}
  if((a == on) && (b==off) && (c ==off)){return rules[3];}
  if((a == off) && (b==on) && (c ==on)){return rules[4];}
  if((a == off) && (b==on) && (c ==off)){return rules[5];}
  if((a == off) && (b==off) && (c ==on)){return rules[6];}
  if((a == off) && (b==off) && (c ==off)){return rules[7];}
  return 0;
}

실행 결과



좋은 웹페이지 즐겨찾기