El lenguaje de programación esotérico evil tiene una operación interesante sobre los valores de bytes que llama "tejido". Es esencialmente una permutación de los ocho bits del byte (no importa desde qué extremo comencemos a contar, ya que el patrón es simétrico):
- El bit 0 se mueve al bit 2
- El bit 1 se mueve al bit 0
- El bit 2 se mueve al bit 4
- El bit 3 se mueve al bit 1
- El bit 4 se mueve al bit 6
- El bit 5 se mueve al bit 3
- El bit 6 se mueve al bit 7
- El bit 7 se mueve al bit 5
Por conveniencia, aquí hay otras dos representaciones de la permutación. Como un ciclo:
(02467531)
Y como una lista de pares de mapeo:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Su tarea es visualizar esta permutación, utilizando los caracteres de cuadro de dibujo ─
, │
, ┌
, ┐
, └
, ┘
,┼
(Unicode puntos de código: U + 2500, U + 2502, U + 250C, U + 2510, U + 2514, U + 2518, U + 253C). Esta visualización debe satisfacer las siguientes restricciones:
La primera y la última línea son exactamente:
0 1 2 3 4 5 6 7
Entre ellos, puede usar tantas líneas como desee de hasta 15 caracteres cada una para adaptarse a los caracteres de su cuadro de dibujo (necesitará al menos 4 líneas). Las líneas deben comenzar verticalmente debajo de uno de los dígitos en la primera fila y terminar verticalmente arriba del dígito correspondiente en la última fila. Las ocho líneas deben estar conectadas y solo pueden cruzarse ┼
(lo que siempre es un cruce, nunca dos líneas de giro que se tocan). Los caminos exactos de las líneas dependen de usted (y encontrar un diseño particularmente golfable es el núcleo de este desafío). Una salida válida sería:
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
Sin embargo, cualquier otro diseño que conecte correctamente los dígitos correctos también está bien. Por favor, muestre el resultado elegido en su respuesta.
Puede escribir un programa o función y no tomará ninguna entrada. Envíe el diagrama a STDOUT (o la alternativa más cercana) o como un valor de retorno de función en forma de una cadena o una lista de cadenas (cada una representa una línea).
Se aplican las reglas estándar de código de golf , por lo que gana el código más corto (en bytes).
01234567
como una entrada y luego conectar que a 01234567
? ¿Para que tengas que descubrir los enlaces tú mismo? Sería una tarea significativamente más desafiante, especialmente para el golf.