Il malefico linguaggio di programmazione esoterico ha un'interessante operazione sui valori di byte che chiama "tessitura". È essenzialmente una permutazione degli otto bit del byte (non importa da quale fine iniziamo il conteggio, poiché il modello è simmetrico):
- Il bit 0 viene spostato nel bit 2
- Il bit 1 viene spostato sul bit 0
- Il bit 2 viene spostato sul bit 4
- Il bit 3 viene spostato sul bit 1
- Il bit 4 viene spostato sul bit 6
- Il bit 5 viene spostato sul bit 3
- Il bit 6 viene spostato sul bit 7
- Il bit 7 viene spostato sul bit 5
Per comodità, ecco altre due rappresentazioni della permutazione. Come un ciclo:
(02467531)
E come un elenco di coppie della mappatura:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Il vostro compito è quello di visualizzare questa permutazione, utilizzando i caratteri scatolari disegno ─
, │
, ┌
, ┐
, └
, ┘
, ┼
(Unicode su: U + 2500, U + 2502, U + 250C, U + 2510 U + 2514, U + 2518, U + 253C). Questa visualizzazione dovrebbe soddisfare i seguenti vincoli:
La prima e l'ultima riga sono esattamente:
0 1 2 3 4 5 6 7
Tra questi, puoi usare tutte le linee che vuoi fino a un massimo di 15 caratteri ciascuna per adattare i caratteri del riquadro (avrai bisogno di almeno 4 linee). Le linee dovrebbero iniziare verticalmente sotto una delle cifre della prima riga e terminare verticalmente sopra la cifra corrispondente nell'ultima riga. Le otto linee devono essere collegate e possono attraversare solo via ┼
(che è sempre un incrocio, mai due linee di svolta che si toccano). I percorsi esatti delle linee dipendono da te (e trovare un layout particolarmente golfabile è il nucleo di questa sfida). Un output valido sarebbe:
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
Tuttavia, anche qualsiasi altro layout che collega correttamente le cifre giuste va bene. Si prega di mostrare l'output scelto nella risposta.
È possibile scrivere un programma o una funzione e non accetta alcun input. Invia il diagramma a STDOUT (o alternativa più vicina) o come valore di ritorno di una funzione sotto forma di una stringa o di un elenco di stringhe (ognuna delle quali rappresenta una riga).
Si applicano le regole standard del code-golf , quindi vince il codice più breve (in byte).
01234567
come ingresso e poi il collegamento che per 01234567
? Quindi devi capire tu stesso i link? Sarebbe un compito significativamente più impegnativo, specialmente per il golf.