Écrivez le programme le plus court possible qui accepte un ensemble d'entiers positifs distincts et génère un rendu ASCII d' hexagones concentriques avec ces longueurs latérales, à partir de barres obliques, de soulignements, d'espaces et de nouvelles lignes.
Le programme le plus court en octets compté par https://mothereff.in/byte-counter gagne.
Exemples
(Ils sont plus beaux avec moins d'espacement des lignes.)
Si l'entrée est 1la sortie doit être l'hexagone de longueur latérale 1:
__
/ \
\__/
Notez que deux traits de soulignement sont utilisés pour le haut et le bas de l'hexagone afin qu'il soit mieux proportionné.
En général, l'hexagone de taille N contient N barres obliques de chaque côté incliné et 2 * N traits de soulignement en haut et en bas.
Si l'entrée est 1 2la sortie doit être les hexagones concentriques de longueur latérale 1 et 2:
____
/ __ \
/ / \ \
\ \__/ /
\____/
Si l'entrée est 1 3la sortie doit être:
______
/ \
/ __ \
/ / \ \
\ \__/ /
\ /
\______/
Si l'entrée est 1 3 2la sortie doit être:
______
/ ____ \
/ / __ \ \
/ / / \ \ \
\ \ \__/ / /
\ \____/ /
\______/
etc.
Règles d'E / S
L'entrée doit provenir de la ligne de commande ou de stdin mais peut être dans le format le plus pratique.
Par exemple, vous pourriez donner à chaque numéro comme un argument de ligne de commande: > myprogram 1 3 2, ou vous pouvez demander à l'utilisateur d'entrer les numéros comme une liste préformaté: [1, 3, 2].
La sortie doit aller vers stdout ou l'équivalent le plus proche de votre langue.
Règles supplémentaires
- L'entrée sera toujours un ensemble d'entiers positifs distincts, pas nécessairement dans n'importe quel ordre .
- La sortie doit ...
- ne pas contenir de caractères en plus
/\ _et des nouvelles lignes. - n'ont pas d'espaces de fin ou d'espaces de début inutiles.
- ne doit pas contenir de retour à la ligne superflu mais peut avoir un retour à la ligne facultatif .
- ne pas contenir de caractères en plus
- Si rien n'est entré, rien ne sort (sauf éventuellement une nouvelle ligne).
- Si cela vous aide, vous pouvez supposer que les entiers d'entrée sont inférieurs à 2 16 .
1(ou n'importe quel nombre) fait référence à l'hexagone avec une longueur de côté de 1. (Avec la mise en garde que 1 barre oblique = 2 traits de soulignement.) Donc, 1se référera toujours à l'hexagone le plus intérieur.
1référence à l'hexagone le plus intérieur ou le plus extérieur?