生きているようなセルオートマトンの各セルは、生きているか死んでいるだけであるため、それを表すのに1ビットしか必要ありません。つまり、2色しかありません。かなり退屈。
通常の画像のピクセルあたりのビット数は24です(RGBごとに8ビット)。これは、セルとしてピクセルを持つ通常の画像では、24のリアルなゲームを一度にシミュレートできることを意味します!
チャレンジ
あなたの仕事は、実物のようなセルオートマトンの1世代のルールを24ビット深度画像(お好みのよく知られている形式)に適用し、結果の画像を出力するプログラムを書くことです。
24の各レイヤーは、厳密に独自のレイヤー内で、同じリアルなルールセットを使用します。24層は相互に作用しません。
また
- ゼロは死んだ細胞であり、ゼロは生細胞です。
- 境界条件は周期的です(トーラスを形成します)。
- すべての画像サイズが機能するはずです。
入出力
プログラムは、stdinまたはコマンドライン(または言語に最も近いもの)を介して3つの引数を取る必要があります。
- 入力画像ファイルの名前。
- 新しいセルがいつ生まれるかを示す昇順の0〜8の数字の文字列:
- 桁の場合はdが文字列である彼らが持っているときに死んだ細胞が生きてくるD生活隣人を。
- 例:
3
通常の生活 -正確に3つの生きている隣人の死んだ細胞が生き返ります。
- 既存のセルがいつ生き残るかを示す、昇順の0から8までの数字のストリング:
- 桁の場合はdが文字列である、その後で生きた細胞D生きている隣人はそうでない場合、彼らは死ぬ、次世代に生き残ります。
- 例:
23
通常の生活-正確に2つまたは3つの隣接セルを持つセルのみが次のラウンドまで生き残ります。
ムーア近傍が常に使用されることに注意してください。実物のようなオートマトンと多くの興味深いルールセットを正確に定義するものの詳細については、こちらまたはこちらをお読みください。
1世代以降の出力イメージは、表示するかout.png
、bmp
または(または何でも)として保存する必要があります。
提出
バイト単位の最短コードが優先されます。
いくつかの重要なルールセットに対して、少なくとも1つのテストイメージとその3つの後続の世代を含める必要があります。これ以上良いものが思いつかない場合は、アバターと通常のライフルールを使用してください。
必要に応じて、緑色の128層に唯一の生きているビットがあるこのGosper Glider Gunを使用できます(通常の生活でのみ動作するはずです)。
興味深いシーケンスやアニメーションを投稿することを強くお勧めします。