MISE À JOUR DU SCORE : Comme ce défi est plus difficile que prévu, j'ai ajusté le score. Un programme qui peut résoudre une seule entrée miroir est une réponse valide. Les programmes plus sophistiqués obtiennent un bonus à leur score.
Il y a eu plusieurs puzzles sur PPCG pour trouver un chemin laser dans une boîte de miroirs. Dans ce puzzle, vous devez créer une boîte de miroirs pour correspondre à un certain nombre de destinations laser.
On vous donne une boîte et une spécification où les lasers doivent entrer et sortir. Votre programme doit placer exactement N miroirs double face dans la boîte pour répondre aux spécifications. Les rétroviseurs doivent être inclinés à 45 degrés mais peuvent être inclinés vers l'avant ou vers l'arrière.
Contribution
Votre programme doit accepter une grille de boîtes via STDIN, un argument de ligne de commande ou un fichier dans les exemples de format suivants:
+--G--+ +abcde+
G | f/////d
| /| a// c
+-----+ f |
+-b-e-+
Les paires de lettres ([a-zA-Z] peuvent être utilisées) indiquent l'entrée / sortie d'un maximum de 52 lasers. À l'intérieur de la boîte, il y aura N /
miroirs. Les dimensions de la boîte seront de 3 <= W, H <= 200. La boîte est composée de +|-
caractères. Il peut y avoir n'importe quel nombre de miroirs dans la boîte, y compris zéro.
Production
La sortie doit correspondre à l'entrée, sauf que les /
caractères peuvent être déplacés et / ou transformés en \
caractères. Votre programme doit envoyer une chaîne de boîte miroir correcte à STDOUT ou à un fichier, la nouvelle ligne à la fin étant facultative. Si aucun placement de miroirs ne peut répondre à la spécification d'entrée, sortez Impossible\n
. Exemples de solutions possibles:
+--G--+ +abcde+
G / | f \ \ d
| | a/ \ c
+-----+ f / //|
+-b-e-+
Exemple de test
Contribution:
+abcdefghijklmnopqrstuvwxyA-+
|/////////////// |
|/////////////// |
| |
+-Abcdefghijklmnopqrstuvwxya+
Exemple de sortie:
+abcdefghijklmnopqrstuvwxyA-+
|\ \|
|/ / |
|\\\\\\\\\\\\\\\\\\\\\\\\\\ |
+-Abcdefghijklmnopqrstuvwxya+
Notation (MISE À JOUR)
C'est du code-golf avec des bonus. Vous devez indiquer avec votre réponse combien de miroirs votre programme peut résoudre (N). Votre score est la longueur de votre programme en octets divisée par N. Cela permet aux gens d'entrer avec un programme simple, mais récompense plus de programmeurs d'ambition avec un bonus.
Failles standard interdites.
* 2^30
composant