Die esoterische Programmiersprache evil hat eine interessante Operation für Bytewerte, die sie "Weben" nennt. Es ist im Wesentlichen eine Permutation der acht Bits des Bytes (es spielt keine Rolle, von welchem Ende aus wir zu zählen beginnen, da das Muster symmetrisch ist):
- Bit 0 wird nach Bit 2 verschoben
- Bit 1 wird nach Bit 0 verschoben
- Bit 2 wird nach Bit 4 verschoben
- Bit 3 wird nach Bit 1 verschoben
- Bit 4 wird nach Bit 6 verschoben
- Bit 5 wird nach Bit 3 verschoben
- Bit 6 wird nach Bit 7 verschoben
- Bit 7 wird nach Bit 5 verschoben
Der Einfachheit halber sind hier zwei weitere Darstellungen der Permutation. Als Zyklus:
(02467531)
Und als Liste von Paaren des Mappings:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Ihre Aufgabe ist es, diese Permutation sichtbar zu machen, die Box-Zeichnen von Buchstaben mit ─
, │
, ┌
, ┐
, └
, ┘
, ┼
(Unicode - Codepunkte: U + 2500, U + 2502, U + 250C, U + 2510, U + 2514, U + 2518, U + 253C). Diese Visualisierung sollte die folgenden Einschränkungen erfüllen:
Die erste und letzte Zeile sind genau:
0 1 2 3 4 5 6 7
Dazwischen können Sie beliebig viele Zeilen mit jeweils bis zu 15 Zeichen für die Zeichen Ihrer Box verwenden (Sie benötigen mindestens 4 Zeilen). Die Zeilen sollten vertikal unter einer der Ziffern in der ersten Zeile beginnen und vertikal über der entsprechenden Ziffer in der letzten Zeile enden. Die acht Linien müssen verbunden sein und dürfen sich nur überkreuzen ┼
(das ist immer eine Kreuzung, niemals zwei sich berührende Wendelinien). Die genauen Wege der Linien liegen bei Ihnen (und die Suche nach einem besonders golffähigen Layout ist der Kern dieser Herausforderung). Eine gültige Ausgabe wäre:
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
Jedes andere Layout, das die richtigen Ziffern richtig verbindet, ist jedoch auch in Ordnung. Bitte zeigen Sie Ihre gewählte Ausgabe in Ihrer Antwort.
Sie können ein Programm oder eine Funktion schreiben und nehmen keine Eingaben vor. Geben Sie das Diagramm entweder an STDOUT (oder an die nächstgelegene Alternative) oder als Funktionsrückgabewert in Form einer Zeichenfolge oder einer Liste von Zeichenfolgen (die jeweils eine Zeile darstellen) aus.
Es gelten die Standardregeln für Code-Golf , sodass der kürzeste Code (in Byte) gewinnt.
01234567
als Ein- und verbindet dann das zu 01234567
? Damit Sie die Links selbst herausfinden müssen? Gerade beim Golfen wäre es eine deutlich anspruchsvollere Aufgabe.