Spde を使う 2

        • -

新しい言語を覚えるとなんとなくライフゲームを作りたくなるので今回もそれで。

参考: Script-Fu でライフゲームを作ってみた | anobota

変数を使う

画面サイズは変更しないので val で。

val screenW = 400;
val screenH = 400;

size(screenW, screenH)
frameRate(4)
stroke(0)

def draw {
  fill(255,255,255)
  rect(0, 0, screenW, screenH)
  line(0, 0, random(screenW), random(screenH))
}

for

ライフゲームだからセルを描けないとだめです。

val screenW = 400;
val screenH = 400;

val cellSize = 4;

// 縦横のセルの数
val cellNumX = screenW / cellSize
val cellNumY = screenH / cellSize

size(screenW, screenH)
frameRate(4)

def draw {
  fill(255)
  rect(0, 0, screenW, screenH)

  stroke(0)
  for (yi <- 0 to cellNumY){
    val y = yi * cellSize
    for (xi <- 0 to cellNumX){
      val x = xi * cellSize
      rect(x, y, cellSize - 2, cellSize - 2)
    }
  }
}

2011-10-12 20:34:52

if

ちょっと楽しくなってきた。

val screenW = 400;
val screenH = 400;

val cellSize = 4;

// 縦横のセルの数
val cellNumX = screenW / cellSize
val cellNumY = screenH / cellSize

size(screenW, screenH)
frameRate(4)

def draw {
  fill(255)
  rect(0, 0, screenW, screenH)

  stroke(0)
  for (yi <- 0 to cellNumY){
    val y = yi * cellSize
    for (xi <- 0 to cellNumX){
      val x = xi * cellSize
      if(random(2) > 1){
        rect(x, y, cellSize - 2, cellSize - 2)
      }
    }
  }
}

2011-10-12 20:34:52