플래시로 제작한 Conway's Game of Life.
[사용법]
보드에 마우스로 클릭, 혹은 드래그하여 살아있는 세포를 생성.
1. Go 버튼: 한 세대 진행.
2. Random 버튼: 쓰여진 숫자만큼 보드에 살아있는 세포 랜덤하게 생성하기.
3. Clear 버튼: 화면 지우고 초기화하기.
4 . Sequence 버튼(토글버튼): 설정된 시간마다 연속적으로 세대 진행하기, 멈추기.
5 . seq interval(sec) 하단 숫자 박스: 연속 진행 초 설정하기.(기본 0.5초)
6. Go 버튼과 Sequence 버튼 사이의 숫자: 진행된 세대 수.
콘웨이의 라이프 게임은 1970년, 영국 수학자 콘웨이(John Horton Conway)에 의해 고안된 것으로 간단한 몇 개의 룰로 생명의 탄생, 성장, 죽음 등을 묘사한 시뮬레이션 게임이자 관상용 게임이다. 제목의 life는 꽤 절묘한데 생명이란 뜻도 되고 수명, 혹은 인생이란 뜻도 되는데 그 뜻들이 모두 게임의 핵심 성격이기도 한지라 한국어로 번역이 애매하다. 그런 탓에 한국에선 생명 게임, 인생 게임, 라이프 게임 등의 이름이 혼용되고 있는 듯.
1. 살아있는 세포를 둘러싼 주위 8개 세포 중에 살아있는 것이 2개 미만(0, 혹은 1개)일 경우 그 세포는 다음 세대로 넘어가지 못하고 죽는다.
2. 살아있는 세포 주위 8개 세포 중 살아있는 세포가 4개 이상일 경우 역시 그 세포는 다음세대로 넘어가지 못하고 죽는다.
3. 죽어있는 세포 주위에 살아있는 세포가 3개일 경우 그 세포는 다음 세대에 살아있는 세포로 부활한다.
룰은 이게 전부. 그럼에도 세포의 형태에따라 여러가지 다양한 형태로 꿈틀대며 변화해 가는 것을 보면 놀라울 정도.
아래 참고 링크의 위키피디아에 있는 형태들을 하나하나 만들어 보며 감탄했다.
예제들)
더이상 변화하지 않고 고정된 형태: 차례대로 Block, Beehive, Loaf, Boat
같은 동작을 반복하는 형태: Blinker, Beacon, Toad.
일정방향으로 이동을 계속하는 형태: Glider, Lightweigh tspaceship
간단한 형태임에도 꽤 많은 성장력을 가지고 세대를 이어가는 F-pentomino.
64x64 크기 보드의 중앙부에 세팅하고 실행해 본 결과 69세대에서 첫 Glider를 발사하고 이후 계속 성장하여 1,500세대가 넘도록 변화를 계속했다. (무한 크기 보드가 아닌 관계로 상하좌우 경계부분에서 왜곡이 발생하기 때문에 세팅한 위치에따라 안정화되기까지 걸리는 세대 수는 차이가 있다. 1500세대 이상 지속된 경우는 좀 특이한 경우. 무한보드의 경우 1103세대에서 안정된다.)
예전에 알게되었을 때 나중에 프로그래밍을 배우면 만들어 봐야지 생각했던 것인지라 액션스크립트 3.0을 배운 김에 만들어 봤다.
참고 링크:
1. Wikipedia의 Conway's Game of Life 항목
http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
2. math.com의 Game of Life 소개 페이지.
자바애플릿으로 제작된 무한보드 game of Life를 실행해 볼 수 있다.
http://www.math.com/students/wonders/life/life.html
2012/6/14 목
|