コードゴルフ:コンウェイの人生ゲーム
2023-10-23 09:35:55
質問
課題です。 ジョン・H・コンウェイの 人生ゲーム セルラー・オートマトン [ リンク ]
EDITです。 約1週間の競争の末、勝者を決定しました。 pdehaan でMatlabの解を打ち負かしたからです。 1 文字でMatlabの解を打ち負かしたことです。
Game of Life を知らない人のために説明すると、正方形のマス目からなるグリッド(理想的には無限)を取ります。セルは生きている(埋まっている)か死んでいる(空)かです。次の時間のステップでどのセルが生きているかは、以下のルールを適用して決定します。
- 2 つ未満の生きている隣人を持つ生きている細胞は、人口不足によって引き起こされるかのように、死ぬ。
- 3つ以上のライブの隣人を持つライブセルは、過密状態によって引き起こされたかのように、死にます。
- 2つまたは3つのライブネイバーを持つライブセルは、次の世代に生き続けます。
- ちょうど3つの生きている隣人を持つ死んだ細胞は、あたかも生殖によって、生きている細胞になる。
あなたのプログラムは、コマンドラインの引数として指定された 40x80 文字の ASCII テキストファイルと、実行する反復回数 (N) を読み込みます。最後に、N 回繰り返した後のシステムの状態を ASCII ファイル out.txt に出力します。
関連ファイルを含む実行例です。
in.txt:
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
..................................XX............................................
..................................X.............................................
.......................................X........................................
................................XXXXXX.X........................................
................................X...............................................
.................................XX.XX...XX.....................................
..................................X.X....X.X....................................
..................................X.X......X....................................
...................................X.......XX...................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
100回繰り返し実行する。
Q:\>life in.txt 100
結果出力(out.txt)
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
..................................XX............................................
..................................X.X...........................................
....................................X...........................................
................................XXXXX.XX........................................
................................X.....X.........................................
.................................XX.XX...XX.....................................
..................................X.X....X.X....................................
..................................X.X......X....................................
...................................X.......XX...................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
ルールです。
- ファイルの読み書きにファイルI/Oを使用する必要があります。
- 引数として入力ファイルと反復回数を受け取る必要があります。
- 指定されたフォーマットでout.txtを生成(存在する場合は上書き)する必要があります。
- あなたは はありません。 ボードのエッジを処理する必要があります (回り込み、無限グリッドなど)
- EDIT: あなたは する は出力ファイルに改行が必要です。
文字数で勝敗を決めます。
がんばってください。
どのように解決するのですか?
perl, 127 <ストライク 129 135 文字数
さらに数文字を削除することに成功しました....
$/=pop;@b=split'',<>;map{$n=-1;@b=map{++$n;/
/?$_:($t=grep/X/,@b[map{$n+$_,$n-$_}1,80..82])==3|$t+/X/==3?X:'.'}@b}1..$/;print@b
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み] 関数は return 文を1つだけ持つべきですか?
-
[解決済み] なぜハッシュ関数には素数モジュールが必要なのですか?
-
[解決済み】並行プログラミングと並列プログラミングの違いは何ですか?
-
[解決済み] ボクシングとアンボクシング、そのトレードオフとは?
-
[解決済み] パラメータと引数の違い【重複
-
[解決済み] メモリマップドファイルの利点は何ですか?
-
[解決済み] 大文字と小文字が異なるだけの変数名を使用するのは不道徳ですか?
-
[解決済み] レキサーの書き方の基本はどこで学べますか?
-
拡張性のあるソフトウェア(プラグインアーキテクチャ)を設計するには?[クローズド]