Este desafio é uma homenagem aos vencedores da categoria Novato do ano do Best of PPCG 2015 : muddyfish (porque eu não sou o idioma que você está procurando! ) E quartata (para Implementar uma máquina da verdade ). Parabéns!
fundo
Nas trincheiras mais profundas do oceano, vive um peixe raro e esquivo em forma de quadrado chamado peixe-quartata . Parece o planador do autômato celular Game of Life. Aqui estão dois peixes-quartata de tamanhos diferentes:
-o-
--o
ooo
--oo--
--oo--
----oo
----oo
oooooo
oooooo
Você conseguiu tirar uma foto do peixe quartata, mas é difícil vê-lo, pois está coberto de lama. Agora você terá que escrever um programa para limpar a foto.
Entrada
Sua entrada é uma grade 2D retangular dos caracteres .-o#
, fornecida como uma sequência separada por nova linha. Se desejar, você pode usar tubos em |
vez de novas linhas como separadores e pode assumir um separador à direita e / ou precedente.
A entrada conterá exatamente um peixe-quartata de algum comprimento lateral 3*n
, onde n ≥ 1
é um número inteiro positivo, cercado por períodos .
que representam o fundo do oceano. O peixe estará sempre na orientação descrita acima. Sobreposto a essa grade, haverá exatamente uma região retangular não vazia de hashes #
, que representa uma gota de lama. O blob pode cobrir o peixe quartata parcial ou totalmente. Um exemplo de entrada seria
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
Saída
Sua saída será gerada a partir da entrada substituindo todos os hashes pelos caracteres .-o
, para que a grade contenha exatamente um quartata-peixe. Sempre haverá uma maneira exclusiva de executar essa substituição corretamente; em particular, a gota de lama cobrirá inteiramente o peixe se seu tamanho for 3 × 3. A saída deve usar o mesmo separador que a entrada. Para a entrada acima, a saída correta seria
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
Regras e pontuação
Você pode escrever um programa completo ou uma função. A menor contagem de bytes vence e as brechas padrão não são permitidas. Não há limites de tempo: se o seu envio acabar com tempo e recursos ilimitados, você estará bem.
Casos de teste
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.........
.........................
......|......|......|...###|...###|...###
(no caso de uma solução tenta todos os possíveis coordenadas superior esquerdo, e tenta encaixar uma 6x6 sobre a área)