Questa sfida è in onore dei vincitori della categoria Rookie of the Year di Best of PPCG 2015 : muddyfish (perché non sono la lingua che stai cercando! ) E quartata (per Implement a Truth-Machine ). Congratulazioni!
sfondo
Nelle trincee più profonde dell'oceano, vive un raro e sfuggente pesce di forma quadrata chiamato il pesce quartata . Sembra l' aliante dell'automa cellulare Game of Life. Ecco due pesci quartata di diverse dimensioni:
-o-
--o
ooo
--oo--
--oo--
----oo
----oo
oooooo
oooooo
Sei riuscito a scattare una foto del pesce quartata, ma il pesce è piuttosto difficile da vedere poiché è coperto di fango. Ora dovrai scrivere un programma per ripulire la foto.
Ingresso
Il tuo input è una griglia 2D rettangolare dei caratteri .-o#, data come una stringa separata da una nuova riga. Se lo desideri, puoi utilizzare le pipe |invece delle newline come separatori e puoi assumere un separatore finale e / o precedente.
L'input conterrà esattamente un pesce quartata di una certa lunghezza laterale 3*n, dove n ≥ 1è un numero intero positivo, circondato da punti .che rappresentano il fondo dell'oceano. Il pesce sarà sempre nell'orientamento raffigurato sopra. Sovrapposto su questa griglia, ci sarà esattamente una regione rettangolare non vuota di hash #, che rappresenta una macchia di fango. La macchia può coprire parzialmente o interamente il pesce quartata. Un esempio potrebbe essere l'input
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
Produzione
L'output deve essere generato dall'input sostituendo tutti gli hash con i caratteri .-o, in modo che la griglia contenga esattamente un quartata-pesce. Ci sarà sempre un modo unico per eseguire correttamente questa sostituzione; in particolare, la macchia di fango coprirà il pesce interamente solo se la sua dimensione è 3 × 3. L'uscita deve utilizzare lo stesso separatore dell'ingresso. Per l'input sopra, sarebbe l'output corretto
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
Regole e punteggio
È possibile scrivere un programma completo o una funzione. Vince il conteggio di byte più basso e non sono consentite scappatoie standard . Non ci sono limiti di tempo: se la tua richiesta alla fine si fermasse con un tempo e risorse illimitate, stai bene.
Casi test
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.........
.........................
......|......|......|...###|...###|...###(nel caso in cui una soluzione provi tutte le possibili coordinate in alto a sinistra e cerchi di adattare un 6x6 sull'area)