Le langage de programmation ésotérique evil a une opération intéressante sur les valeurs d'octets qu'il appelle "tissage". Il s'agit essentiellement d'une permutation des huit bits de l'octet (peu importe de quelle extrémité nous commençons à compter, car le motif est symétrique):
- Le bit 0 est déplacé vers le bit 2
- Le bit 1 est déplacé vers le bit 0
- Le bit 2 est déplacé vers le bit 4
- Le bit 3 est déplacé vers le bit 1
- Le bit 4 est déplacé vers le bit 6
- Le bit 5 est déplacé vers le bit 3
- Le bit 6 est déplacé vers le bit 7
- Le bit 7 est déplacé vers le bit 5
Pour plus de commodité, voici deux autres représentations de la permutation. En cycle:
(02467531)
Et comme une liste de paires de la cartographie:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Votre tâche est de visualiser cette permutation, en utilisant les caractères de boîte dessin ─
, │
, ┌
, ┐
, └
, ┘
, ┼
(points de code Unicode: U + 2500, U + 2502, U + 250C, U + 2510, U + 2514, U + 2518, U + 253C). Cette visualisation doit satisfaire les contraintes suivantes:
La première et la dernière ligne sont exactement:
0 1 2 3 4 5 6 7
Entre ceux-ci, vous pouvez utiliser autant de lignes que vous le souhaitez jusqu'à 15 caractères chacune pour s'adapter à vos personnages de dessin de boîte (vous aurez besoin d'au moins 4 lignes). Les lignes doivent commencer verticalement sous l'un des chiffres de la première ligne et se terminer verticalement au-dessus du chiffre correspondant de la dernière ligne. Les huit lignes doivent être connectées et ne peuvent traverser que ┼
(ce qui est toujours un croisement, jamais deux lignes tournantes qui se touchent). Le chemin exact des lignes dépend de vous (et trouver un tracé particulièrement golfable est au cœur de ce défi). Une sortie valide serait:
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
Cependant, toute autre mise en page qui connecte correctement les bons chiffres convient également. Veuillez indiquer la sortie choisie dans votre réponse.
Vous pouvez écrire un programme ou une fonction et ne prendre aucune entrée. Générez le diagramme sur STDOUT (ou l'alternative la plus proche) ou sous forme de valeur de retour de fonction sous la forme d'une chaîne ou d'une liste de chaînes (chacune représentant une ligne).
Les règles de code-golf standard s'appliquent, donc le code le plus court (en octets) gagne.
01234567
comme une entrée, puis la connexion qui à 01234567
? Pour que vous deviez trouver vous-même les liens? Ce serait une tâche beaucoup plus difficile, surtout pour le golf.