gen 0

이 실험에 대해

Conway의 생명 게임(Game of Life)은 1970년 수학자 John Horton Conway가 고안한 세포 자동자(cellular automaton)다. 단 네 가지 규칙만으로 글라이더, 오실레이터, 스틸 라이프 등 무한한 패턴이 창발한다. 캔버스를 클릭하거나 드래그해 세포를 직접 그릴 수 있다. 빈 격자에서 시작해 글라이더나 글라이더 건을 손으로 그려보는 것을 추천한다.

핵심 코드

// Conway의 네 가지 규칙
function step(grid: Uint8Array): Uint8Array {
  const next = new Uint8Array(COLS * ROWS)
  for (let y = 0; y < ROWS; y++) {
    for (let x = 0; x < COLS; x++) {
      const alive = grid[y * COLS + x]
      const n = countNeighbors(grid, x, y)
      // 살아있는 세포: 2~3명 이웃이면 생존
      // 죽은 세포: 정확히 3명 이웃이면 탄생
      next[y * COLS + x] = alive
        ? (n === 2 || n === 3 ? 1 : 0)
        : (n === 3 ? 1 : 0)
    }
  }
  return next
}

// 토러스 경계 — 격자 가장자리가 반대쪽과 연결됨
const nx = (x + dx + COLS) % COLS
const ny = (y + dy + ROWS) % ROWS