BbaDdo :: Conway's Game Of Life Java code

 

 

콘웨이 박사의 '게임오브라이프' 를 자바로 만들어 보았읍니다.

참고 사이트 :  http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life

 

이 게임을 간략하게 설명하자면,  2차원 격자로 형성된 무한평면에서 하나의 격자(cell)를 생명단위로 설정하고

주변 8개 셀들에 의해 그 셀이 살아남거나 죽어버리거나 또는 탄생하거나 하는 규칙을 정해서

다음 세대로 전이되어가는 상태를 보여줍니다. 마치 세포들이 생성되고 소멸되는 모습을 보는 듯 하죠.

자바코드에서는 물론 무한평면이 아닙니다.

 

영국의 수학자인 John Horton Conway 박사가 1970년에 고안했다고 합니다.

룰은 4가지 입니다.

 

* Any live cell with fewer than two live neighbours dies, as if caused by under-population.
* Any live cell with two or three live neighbours lives on to the next generation.
* Any live cell with more than three live neighbours dies, as if by overcrowding.
* Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

 

 

 

 

1. 살아있는 셀 A의 주변 8개 셀 중에 2개 미만의 수(즉, 0 또는 1개)가 살아있을때 A셀은 죽어버립니다. 왜냐구요? 외로워서...

2. 살아있는 셀 A의 주변 8개 셀 중에 2개 또는 3개의 셀이 살아있을때 A셀은 살아남습니다.

3. 살아있는 셀 A의 주변 8개 셀 중에 4개 이상의 셀(4 ~ 8개)이 살아있을때 A셀의 죽어버립니다. 왜? 살기가 복잡해서...

4. 죽어있는 셀 A의 주변 8개 셀 중에 정확히 3개의 셀이 살아있을때 죽어있는 A셀이 살아납니다. 왜냐구요? 그냥 룰이니까...

 

이렇게 4가지 룰을 적용해서 마치 자동으로 세포가 생성되고 소멸되는 모습을 보여줍니다.

그리고 영원히 살아남는 셀무리도 생깁니다.

흥미롭죠? 규칙을 마음대로 정해서 만들어도 됩니다.

 

간단한 로직으로 간단하게 만들 수 있는 코드이지만 결과는 정말이지 흥미롭습니다.

지구에 최초의 생명체가 탄생하는 과정을 볼 수는 없지만 우주의 상수들이 생명탄생의 적합한 환경으로 만들고

오랜 세월에 걸쳐 생명이 탄생했을 것이라는 막연한 상상 같은 실생활에 전혀 쓸데 없는 생각을 하게 만드네요.

 

셀을 잘 디자인해서 실행하면  재미있는 모습을 볼 수도 있읍니다. 초기 데모화면중에 "New" 버튼을 누르면

게임 실행 준비가 됩니다. 마우스로 셀을 클릭하거나 드랙해서 "Start" 버튼누르면 실행됩니다.

마우스 오른쪽 버튼 클릭하면 도움말 나옵니다.

 

 

실행파일 다운로드

 

 

자바 실행파일 첨부했으나 자바가상머신이 컴퓨터에 깔려있어야 실행된다는 점...

최소한 JRE를 깔아도 아마도 될 겁니다. 자바 설치 방법은 검색하시면 나옵니다.

자바 다운로드  : http://www.oracle.com/technetwork/java/javase/downloads/index.html

끝.

 

 

 

<Result>

'Android' 카테고리의 다른 글

cocos2d-x 1.01 ripple, wave, liquid 응용  (0) 2013.07.12
Bresenham 브레센함 알고리듬 : 원 그리기  (0) 2013.03.07
Android image crop  (0) 2012.09.19
java.lang.reflect.Method.invoke 메서드 활용  (0) 2012.08.20
Android Screen Capture  (0) 2012.07.19

카운터

Total : / Today : / Yesterday :
get rsstistory!