kkana's blog

新米コーダーの忘れそうなことメモ

nature of code:今日の練習「ライフゲーム」

See the Pen life game by kanaparty (@kanaparty) on CodePen.

ライフゲーム

ライフゲーム - Wikipedia 複雑系の特徴をもった セルの系

セルオートマトンのときは
一つの世代を一つの列として表現し、次の世代を下二追加していったけれど
ライフゲームのときは
2次元のセルを使って、次の世代を次のアニメーションフレームで表現するのが一般的。
そうすると細菌がシャーレのなかで成長していくような動きが楽しめる!

ルール

updateState(){
  var neighborhood = cellList.neighborhood(this.colIndex, this.rowIndex);
  var count = 0;
  for (var i = 0; i < 8; i++) {
    if(neighborhood[i].prevState === true){
      count ++ ;
    }
  }

  //セルが生きていて周りにいきているセルが1しかない→死
  if(this.prevState && count < 2){
    this.state = false;
  }
  //セルが生きていて周りに4つ以上→死
  else if(this.prevState && count > 3){
    this.state = false;
  }
  //セルが死んでいて3つだと誕生
  else if(!this.prevState && count === 3){
    this.state = true;
  }
  else{
    this.state = this.prevState;
  }
}