この課題は、年カテゴリの受賞者のルーキーの名誉であるPPCG 2015のベスト:muddyfish(のために!私はあなたが探している言語ではありませんよ)とquartata(のために真実-マシンを実装します)。おめでとうございます!
バックグラウンド
海の最も深い海溝には、珍しいとらえどころのない四角い魚が生息しています。Game of Lifeセルラーオートマトンのグライダーのように見えます。以下に、サイズの異なる2つのクオタタ魚を示します。
-o-
--o
ooo
--oo--
--oo--
----oo
----oo
oooooo
oooooo
あなたは何とかクオタタ魚の写真を撮ることができましたが、魚は泥で覆われているので見るのはかなり難しいです。ここで、写真をクリーンアップするプログラムを作成する必要があります。
入力
入力は、.-o#
改行で区切られた文字列として指定された、文字の長方形の2Dグリッドです。必要に応じ|
て、区切り文字として改行の代わりにパイプを使用できます。1つの末尾および/または先行区切り文字を想定できます。
入力には、海辺を表す周期で囲まれた正の整数である3*n
、辺の長さの1つのクオタタ魚が含まn ≥ 1
れます.
。魚は常に上記の向きになります。このグリッド上にオーバーレイされると、ハッシュの空でない長方形の領域が1つだけ存在し#
、泥の塊を表します。ブロブは、クオタタ魚を部分的または全体的に覆うことがあります。入力例は次のようになります
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
出力
すべてのハッシュを文字.-o
で置き換えることにより、入力から出力が生成されます。これにより、グリッドに正確に1つの四角魚が含まれるようになります。この置換を適切に実行するための独自の方法が常にあります。特に、泥の塊は魚のサイズが3×3の場合にのみ魚を完全に覆います。出力は、入力と同じセパレーターを使用します。上記の入力の場合、正しい出力は次のようになります
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
ルールとスコアリング
完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。時間の制限はありません。時間とリソースが無制限の場合、提出物が最終的に停止する場合は問題ありません。
テストケース
Input:
.......
...-o-.
...--o.
##.ooo.
##.....
Output:
.......
...-o-.
...--o.
...ooo.
.......
Input:
...-o-.
...-#o.
...ooo.
.......
Output:
...-o-.
...--o.
...ooo.
.......
Input:
.........
.###.....
.###.....
.ooo.....
Output:
.........
.-o-.....
.--o.....
.ooo.....
Input:
.....
.###.
.###.
.###.
Output:
.....
.-o-.
.--o.
.ooo.
Input:
......
......
......
...###
...###
...###
Output:
......
......
......
...-o-
...--o
...ooo
Input:
###o--....
###o--....
###-oo....
###-oo....
###ooo....
###ooo....
###.......
Output:
--oo--....
--oo--....
----oo....
----oo....
oooooo....
oooooo....
..........
Input:
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
Output:
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
Input:
...--oo--....
.#########...
.#########...
.#########...
...oooooo....
...oooooo....
.............
.............
Output:
...--oo--....
...--oo--....
...----oo....
...----oo....
...oooooo....
...oooooo....
.............
.............
Input:
..............
..............
.########.....
.########.....
.########-....
.########-....
.########o....
.########o....
.########o....
.########o....
.########.....
..............
Output:
..............
..............
..............
..............
....--oo--....
....--oo--....
....----oo....
....----oo....
....oooooo....
....oooooo....
..............
..............
Input:
.................
.................
..---ooo---......
..--#########....
..--#########....
..--#########....
..--#########....
..--#########....
..oo#########....
..oo#########....
..oo#########....
....#########....
Output:
.................
.................
..---ooo---......
..---ooo---......
..---ooo---......
..------ooo......
..------ooo......
..------ooo......
..ooooooooo......
..ooooooooo......
..ooooooooo......
.................
Input:
.........................
.........................
....----oooo----.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....----########.........
....oooo########.........
....oooo########.........
....oooooooooooo.........
....oooooooooooo.........
.........................
Output:
.........................
.........................
....----oooo----.........
....----oooo----.........
....----oooo----.........
....----oooo----.........
....--------oooo.........
....--------oooo.........
....--------oooo.........
....--------oooo.........
....oooooooooooo.........
....oooooooooooo.........
....oooooooooooo.........
....oooooooooooo.........
.........................
......|......|......|...###|...###|...###
ソリューションがすべての可能な左上座標を試行し、6x6を領域に