Ce défi est en l'honneur des lauréats de la catégorie Recrue de l'année du Meilleur de PPCG 2015 : muddyfish (car je ne suis pas la langue que vous recherchez! ) Et quartata (pour Implémenter une machine à vérité ). Toutes nos félicitations!
Contexte
Dans les tranchées les plus profondes de l'océan, vit un poisson de forme carrée rare et insaisissable appelé poisson quartata . Il ressemble au planeur de l'automate cellulaire Game of Life. Voici deux poissons quartata de tailles différentes:
-o-
--o
ooo
--oo--
--oo--
----oo
----oo
oooooo
oooooo
Vous avez réussi à prendre une photo du poisson quartata, mais le poisson est assez difficile à voir car il est couvert de boue. Vous devrez maintenant écrire un programme pour nettoyer la photo.
Contribution
Votre entrée est une grille 2D rectangulaire des caractères .-o#
, donnée sous forme de chaîne séparée par des sauts de ligne. Si vous le souhaitez, vous pouvez utiliser des tuyaux |
au lieu de retours à la ligne comme séparateurs et vous pouvez supposer un séparateur de fin et / ou précédent.
L'entrée contiendra exactement un quartata-poisson d'une certaine longueur latérale 3*n
, où n ≥ 1
est un entier positif, entouré de périodes .
qui représentent le fond de l'océan. Le poisson sera toujours dans l'orientation décrite ci-dessus. Superposé sur cette grille, il y aura exactement une région rectangulaire de hachage non vide #
, qui représente une goutte de boue. La goutte peut couvrir partiellement ou entièrement le poisson quartata. Un exemple d'entrée serait
............
..--oo--....
..--oo--....
..---#####..
..---#####..
..ooo#####..
..oooooo....
Sortie
Votre sortie doit être générée à partir de l'entrée en remplaçant tous les hachages par les caractères .-o
, afin que la grille contienne exactement un quartata-fish. Il y aura toujours un moyen unique d'effectuer correctement ce remplacement; en particulier, la goutte de boue ne couvrira entièrement le poisson que si sa taille est de 3 × 3. La sortie doit utiliser le même séparateur que l'entrée. Pour l'entrée ci-dessus, la sortie correcte serait
............
..--oo--....
..--oo--....
..----oo....
..----oo....
..oooooo....
..oooooo....
Règles et notation
Vous pouvez écrire un programme complet ou une fonction. Le nombre d'octets le plus bas l'emporte et les failles standard sont interdites. Il n'y a pas de limite de temps: si votre soumission finissait par s'arrêter avec un temps et des ressources illimités, tout va bien.
Cas de 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.........
.........................
......|......|......|...###|...###|...###
(dans le cas où une solution essaie toutes les coordonnées possibles en haut à gauche et essaie d'ajuster un 6x6 sur la zone)