오늘은 Game of Life의 규칙을 살펴 보도록 하겠습니다~~^^*
음…하나의 세포의 삶과 죽음은 주변 환경에 따라 결정되는 것 같네요.
이웃하는 세포들이 환경요소로 작용하고 있는 것 같습니다.
하나. 우리의 세포가 현재 살아있는 상태이고, 주변에 살아있는 이웃 세포들이 2개 미만이면 (아예 없거나 1개만 있으면), 인구가 너무 적다보니 생계활동이 잘 이루어 지지 않아서, 우리의 세포도 그만 죽어버리게 되는 것 같습니다. Underpopulation, oh no!
둘. 우리의 세포가 현재 살아있는 상태이고, 주변에 살아있는 이웃세포들이 2개나 3개이면, 적절한 생계활동을 교환하며, 우리의 세포가 계속 생명을 유지할 수 있는 것 같아요.
셋. 우리의 세포가 현재 살아있는 상태이고, 주변에 살아있는 이웃세포들이 3개 보다 많으면 (4개 이상이면), 인구가 너무 많다보니 생계활동도 경쟁이 심해지고 자원도 희소해져서, 우리의 세포가 그만 죽어버리게 되네요. Overpopulation, oh no!
넷. 만약에, 우리의 세포가 이미 죽어있는 상태라면, 주위에 정확하게 딱! 세 개의 살아있는 이웃세포들이 존재하면, 그들의 생명력을 나눠 받아, 새생명으로 태어나게 되어요. Reproduction!
음….우리의 세포를 둘러싼 이웃 세포들을 식별하고 그들의 상태를 살펴볼 필요가 있겠네요!
하나의 세포의 주위를 감싸는 세포들은 8개가 있을 것 같은데요….
우리의 세포의 위치가 arr [ i ] [ j ] 라면~
- i는 x축에 관한 것이라서 왼쪽은 작은 값 오른쪽은 큰 값을 가질 것 같아요.
- j는 y축에 관한 것이라서 위쪽은 작은 값 아래쪽은 큰 값을 가질 것 같아요.
(컴퓨터 그래픽에서 y축 좌표값은 아래로 내려갈 수록 커지니까요~^^*)
(1) 왼쪽 위쪽 이웃 세포 arr[i-1][j-1]
(2) 바로 위쪽 이웃 세포 arr[i][j-1]
(3) 오른쪽 위쪽 이웃 세포 arr[i+1][j-1]
(4) 바로 왼쪽 이웃 세포 arr[i-1][j]
(5) 바로 오른쪽 이웃 세포 arr[i+1][j]
(6) 왼쪽 아래쪽 이웃 세포 arr[i-1][j+1]
(7) 바로 아래쪽 이웃 세포 arr[i][j+1]
(8) 오른쪽 아래쪽 이웃 세포 arr[i+1][j+1]

arr[ ][ ]에 “0”이 저장되어 있으면 [죽어있음]으로, “1”이 저장되어 있으면 [살아있음]으로 해석하도록 할까요~^^*
주변 환경에 따라 다음 상태가 변화하는 Game of Life 규칙의 예를 그림으로 표현해 볼게요~~^^*

우리의 세포 주위의 이웃 세포들도~^^* 자신의 주위를 둘러싼 8개의 세포들의 상태에 따라 Game of Life 규칙을 적용받아 다음 단계 상태들이 변하겠지요~^^*
우리가 우리 주위의 존재들에 의해 영향을 받는 것 그리고 우리도 우리 주위의 존재들에 영향을 주는 것, 그것이 Game of Life인 것 같아요~~^^*
삶의 실제 현상을 네 개의 간단한 규칙으로 정리해 놓은 것 같아서, 신기하네요!!!
한 편의 영화가 탄생되는 데는 참 많은 사람들의 노고가 서려있는 것 같아요…
죽어있던 세포가 주변의 살아있는 세포 3개의 생명력을 나누어 받아 다시 살아나는 것이 실감이 납니다…
잊혀져 있거나 발견되지 않아서, 사라진 듯 보이지 않는 많은 삶의 이야기들이, 영화를 만드는 수많은 사람들의 생명력을 나누어 받아, 이 세상에 새롭게 태어나는 것이 새삼스럽게 감사하게 느껴져요…
오늘 저와 함께, 삶의 핵심을 표현한 Game of Life 규칙을 살펴봐 주셔서 감사합니다~^^*
저와 함께 코딩 공부 생명력을 나누는 살아있는 이웃 세포가 되어 주셔서 감사합니다!
우리 내일 또 만나서, 이 규칙을 코드로 표현하는 공부를 함께 해 보면 좋겠어요!
오늘도 멋진 아침! 멋진 하루! 보내시고요!
우리 내일 또 만나요~~~^^*
네~!!! 꿈은 이루어 집니다~!!!
댓글 남기기