Мені подобається крива Гільберта .
Ваше завдання для цього завдання полягає в тому, щоб зробити зображення (строго квадратне зображення, де всі сторони мають два пікселі завширшки) і розплутати його по черзі за зигзагоподібним способом і згорнути його назад в псевдо-Гільбертовій кривій .
Розгадування
Щоб розгадати, ви почнете з пікселя у верхньому лівому куті та рухаєтесь праворуч, поки не досягнете краю зображення. Після того, як ви потрапили на край зображення, ви перейдете вниз до наступного ряду і почнете подорожувати вліво, поки ви знову не натиснете на край. Ви будете продовжувати розплутувати рядок, перемикаючи напрямок кожного разу, щоб отримати одну суцільну криву. Це повинно виглядати як добре відіграна гра в змію
Результатом розгадування має бути порядок пікселів, що включає кожен піксель рівно один раз
Перекроювання
Коли ви отримаєте замовлення на пікселі, ви переставите їх на нове полотно однакового розміру, слідуючи за кривою псевдо-Гільберта. Для 2**n
розмірного квадратного зображення слід використовувати n-ту ітерацію псевдогілбертової кривої. Кожен піксель буде розміщений рівно в одному місці на новому полотні. Вам слід переробити зображення так, щоб точка, спочатку вгорі ліворуч (початок кривої змії), залишилася там, а точка в нижньому правому куті (кінець кривої змії) буде розміщена вгорі праворуч.
I / O
Ваша програма або функція повинна приймати зображення певних обмежень за допомогою стандартних методів і виводити інше зображення за допомогою стандартних методів.
Оцінка балів
Це кодова програма для гольфу з найменшою кількістю байтових виграшів.
Приклади
Вхідні дані
Вихідні дані
Вхідні дані
Вихідні дані
Вхідні дані
Вихідні дані
Я також рекомендую протестувати порожнє зображення білого або суцільного кольору, щоб переконатися, що ви не пропускаєте жодної пікселі.
Не соромтеся включати власні результати у відповіді!