실제와 같은 셀룰러 오토 마톤의 각 셀은 살아 있거나 죽을 수 있기 때문에 하나의 비트 만 나타내면됩니다. 즉, 두 가지 색상 만 있습니다. 꽤 지루합니다.
일반 이미지에는 픽셀 당 24 비트가 있습니다 (각 RGB에서 8 개). 즉, 픽셀이 셀로 포함 된 일반 이미지에서는 한 번에 24 개의 실제와 같은 게임을 시뮬레이션 할 수 있습니다!
도전
당신의 임무는 실물과 같은 셀룰러 오토 마톤의 1 세대 규칙을 24 비트 심도 이미지 (원하는 잘 알려진 형식으로)에 적용하고 결과 이미지를 출력하는 프로그램을 작성하는 것입니다.
24 개 계층 각각은 자체 계층 내에서 동일한 실제와 같은 규칙 세트를 사용합니다. 24 개의 레이어는 서로 상호 작용하지 않습니다.
또한
- 0은 죽은 세포이고 1은 살아있는 세포입니다.
- 경계 조건은 주기적입니다 (원환 형성).
- 모든 이미지 크기가 작동해야합니다.
입출력
프로그램은 stdin 또는 명령 줄 (또는 해당 언어와 가장 비슷한)을 통해 3 개의 인수를 사용해야합니다.
- 입력 이미지 파일의 이름입니다.
- 새 셀이 태어난시기를 나타내는 0에서 8까지의 숫자로 구성된 문자열 :
- 숫자의 경우 d는 문자열에가있을 때 다음 죽은 세포는 살아 온 D 살아있는 이웃.
- 예 :
3
정상적인 생명체 -정확히 3 명의 살아있는 이웃을 가진 죽은 세포가 살아납니다.
- 기존 셀이 생존 할 때를 나타내는 순서대로 0에서 8까지의 숫자 문자열 :
- 숫자 d 가 줄에 있으면 d 개의 이웃이 있는 살아있는 세포 는 다음 세대까지 살아남고 그렇지 않으면 죽습니다.
- 예 :
23
정상 수명입니다. 정확히 2 개 또는 3 개의 이웃이있는 셀만 다음 라운드에서 생존합니다.
점을 유의 무어 이웃이 항상 사용됩니다. 읽기 이 나 이 정확하게 실제와 같은 기계적 많은 재미있는 규칙 세트를 정의 사항에 대한 자세한 정보를 원하시면.
1 세대 이후의 출력 이미지는 out.png
( bmp
또는 기타) 로 표시되거나 저장되어야합니다 .
제출
바이트 단위의 가장 짧은 코드가 이깁니다.
당신은있다 필요한 적어도 하나 개의 테스트 이미지와 일부 비 사소한 룰에 대한 세 가지 바로 다음 세대를 포함 할 수 있습니다. 더 나은 생각이 없다면 아바타와 일반적인 생활 규칙을 사용하십시오.
원하는 경우 살아있는 비트가 녹색 128 레이어에있는 이 Gosper Glider Gun을 사용할 수 있습니다 (정상적인 생활에서만 작동합니다).
재미있는 시퀀스 나 애니메이션을 게시하는 것이 좋습니다.