Езотерична мова програмування зла має цікаву операцію над значеннями байтів, які вона називає "плетінням". По суті це перестановка восьми біт байта (не має значення, з якого кінця ми почнемо рахувати, оскільки шаблон є симетричним):
- Біт 0 переміщується в біт 2
- Біт 1 переміщено в біт 0
- Біт 2 переміщується в біт 4
- Біт 3 переміщений в біт 1
- Біт 4 переміщено в біт 6
- Біт 5 переміщується в біт 3
- Біт 6 переміщений в біт 7
- Біт 7 переміщений в біт 5
Для зручності ось два інших зображення перестановки. Як цикл:
(02467531)
І як список пар відображення:
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
Ваше завдання полягає в тому, щоб візуалізувати цю перестановку, використовуючи поле малювання символів ─
, │
, ┌
, ┐
, └
, ┘
,┼
(Unicode кодових точок: U +2500, U + 2502, U + 250C, U + 2510, U + 2514, U + 2518, U + 253С). Ця візуалізація повинна відповідати наступним обмеженням:
Перший і останній рядки:
0 1 2 3 4 5 6 7
Між ними ви можете використовувати стільки ліній, скільки вам потрібно, до 15 символів кожен, щоб відповідати вашим символам для малювання поля (вам знадобиться щонайменше 4 рядки). Рядки повинні починатися вертикально під однією з цифр першого ряду і закінчуватися вертикально над відповідною цифрою в останньому рядку. Вісім ліній повинні бути з'єднані і можуть перетинатися лише через ┼
(який завжди є перетином, ніколи дві лінії повороту, які торкаються). Точні шляхи ліній залежать від вас (а пошук особливо грізного макета є основою цього завдання). Один дійсний вихід буде:
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
Однак будь-який інший макет, який правильно з'єднує правильні цифри, теж добре. Будь ласка, покажіть вибраний результат у своїй відповіді.
Ви можете написати програму або функцію, але не буде брати жодного вводу. Виведіть діаграму або в STDOUT (або найближчу альтернативу) або як функцію повернення значення у вигляді рядка або списку рядків (кожна представляє один рядок).
Діють стандартні правила гольф-коду , тому виграє найкоротший код (у байтах).
01234567
якості вхідних даних , а потім підключення , що до 01234567
? Так що ви повинні самі з'ясувати посилання? Це було б значно складніше завдання, особливо для гольфу.