Ezoteryczny język programowania zło ma interesującą operację na wartościach bajtów, które nazywa „tkaniem”. Zasadniczo jest to permutacja ośmiu bitów bajtu (nie ma znaczenia, od którego końca zaczniemy liczyć, ponieważ wzorzec jest symetryczny):
- Bit 0 jest przenoszony na bit 2
- Bit 1 jest przenoszony na bit 0
- Bit 2 jest przenoszony na bit 4
- Bit 3 jest przenoszony na bit 1
- Bit 4 jest przenoszony na bit 6
- Bit 5 jest przenoszony na bit 3
- Bit 6 jest przenoszony na bit 7
- Bit 7 jest przenoszony na bit 5
Dla wygody oto dwie inne reprezentacje permutacji. Jako cykl:
(02467531)
I jako lista par mapowania:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Twoim zadaniem jest wizualizacja tej permutacji, stosując znaki materacem rysunek ─
, │
, ┌
, ┐
, └
, ┘
, ┼
(Unicode punkty kodowe: U + 2500, U + 2502, U + 250C, U + 2510, U + 2514, U + 2518, U + 253 ° C). Ta wizualizacja powinna spełniać następujące ograniczenia:
Pierwsza i ostatnia linia to dokładnie:
0 1 2 3 4 5 6 7
Pomiędzy nimi możesz użyć tyle linii, ile chcesz, do 15 znaków, aby pasowały do twoich znaków rysunkowych (potrzebujesz co najmniej 4 linii). Linie powinny rozpoczynać się pionowo pod jedną z cyfr w pierwszym rzędzie i kończyć się pionowo nad odpowiednią cyfrą w ostatnim rzędzie. Osiem linii musi być połączonych i może przecinać tylko ┼
(co jest zawsze skrzyżowaniem, nigdy dwie dotykające się linie zwrotne). Dokładne ścieżki linii zależą od ciebie (a znalezienie szczególnie grywalnego układu jest podstawą tego wyzwania). Jednym prawidłowym wyjściem byłoby:
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
Jednak każdy inny układ, który poprawnie łączy prawidłowe cyfry, jest również w porządku. Pokaż swoją odpowiedź w odpowiedzi.
Możesz napisać program lub funkcję i nie będziesz pobierał żadnych danych wejściowych. Wyjście diagramu do STDOUT (lub najbliższej alternatywy) lub jako funkcja zwraca wartość w postaci łańcucha lub listy ciągów (każdy reprezentujący jedną linię).
Obowiązują standardowe zasady gry w golfa , więc wygrywa najkrótszy kod (w bajtach).
01234567
jako wejście, a następnie podłączając że do 01234567
? Abyś sam musiał znaleźć linki? Byłoby to znacznie trudniejsze zadanie, szczególnie w golfa.