생명게임

> 잡동사니 > 생명게임

생명게임( Life Game )이란?

몇 개의 도트( Dot )로 시작하여, 일정한 규칙에 의해 생성과 소멸을 반복함으로써 다양한 형태를 보여주는 일종의 - 만화경 같은 - 눈요기용 놀이입니다. 게임이라고 해서 오락실에서 즐기는 그런 게임을 연상하시면 안됩니다. 저는 처음에 그렇게 생각했습니다.

생명게임의 역사는?

1970년 마틴 가드너( Martin Gardner )가 사이언티픽 아메리칸( Scientific American; 미국의 과학잡지 )에 J.H.Conway의 생명게임을 소개하면서 사람들에게 알려지기 시작했습니다. 그 후 상당한 기간동안 온 세계의 PC와 단말기에 유행하다시피 퍼졌다고 하네요. 저 역시 컴초보 시절에 생명게임이란 단어를 들은 듯 합니다.

생명게임의 룰( Rule )은?

바둑판 같은 격자 무늬를 연상해 보세요. 이것이 세계( World )입니다. 여기에는 한 칸( Cell )마다 도트가 존재할 수 있는데, 이것이 바로 생명( Life )입니다. 하나의 생명은 가로, 세로, 대각선 방향으로 인접한 칸에 영향을 줍니다. 생명이 존재하지 않는 칸이 있다고 가정해 봅시다. 이 칸의 가로, 세로, 대각성 방향에 3개의 생명이 존재한다면, 다음 세대에는 이 칸에 새 생명이 출현합니다. 이미 생명이 존재하는 칸에 대해서는 주의에 존재하는 생명이 한 개 이하거나 네 개 이상이면 과소와 과밀의 이유로 다음 세대에는 소멸하게 됩니다. 간단한 룰이죠? 프로그래밍 하기도 쉽답니다.

생명게임의 의미는?

위에서도 이야기 했지만, 생명게임은 만화경과 같은 눈요기를 위한 놀이입니다. 시발점이 되는 생명의 위치에 따라 천차만별의 다양한 모습을 보여주기 때문이죠. 심지어는 세계를 이루고 있는 맵의 가로 사이즈와 세로 사이즈의 변화에도 반응을 합니다. 인류의 생성과 소멸의 극단적인 모습일 수도 있겠습니다. 이 게임에서 카오스 이론을 논하는 사람들도 있지만, 저야 그런 복잡한 이론은 모르겠고, 간단한 패턴으로 그렇게 다양한 모양을 생성해 낸다는 사실만으로도 관심이 가지더군요. 이 패턴을 게임에 응용하면 어떨까 생각중이긴 하지만 마땅한 아이디어가 떠오르지 않네요. 좀더 연구해보면 활용할 만한 곳을 찾을지도 모르겠습니다.

생명게임을 해 보자!

자바스크립트로 간단하게 생명게임을 구현해 보았습니다. 화면 오른쪽 상단에는 정형화된 생명의 형태가 있고, 이를 클릭하면 맵에 추가됩니다. 맵에 생명을 추가하고, [시작] 버튼을 누르면 시간이 흐르면서 생명게임이 시작되는 거죠. 시간이 흐르는 중에도 새로운 생명을 추가할 수 있습니다.
자, 그럼 이제 생명게임을 즐겨보도록 합시다. <지마>
지금은 0 세대
  • [이름]은 한글로만 빈칸없이 2~5자 (키입력이 안되면 한/영 키 살짝!) [암호]는 글수정 / 삭제 시 사용 (입력이 없으면 수정/삭제 불가)