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)