Днями малюючи на папері з квадратним правилом, я придумав вищеназваний шрифт для цифр. Якщо ви ще цього не помітили, пробіли між наведеними фігурами мають золоте співвідношення 1,618033988749 . У цьому завданні ваше завдання - взяти число в якості введення та надати його точно так, як показано в наведеному вище прикладі.
Ось як вони створюються. Усі рядки будуть на звичайній сітці, так що окремі цифри складаються з невеликої кількості комірок сітки. Ось форми з 10 цифр (ми будемо ігнорувати десяткову точку для цього завдання):
Так, 7 відрізняється від прикладу золотого відношення вгорі. Я якось зіпсував це. Ми підемо з цим.
Зауважте, що кожна цифра має п’ять комірок у висоту, а три - у комірки. Для відображення числа ви можете уявити, що всі його цифри розташовуються поруч, таким чином, щоб між кожною парою цифр знаходився рівно один порожній стовпець. Наприклад, взявши 319
за вхід, ми напишемо:
Зверніть увагу, що ми додаємо один провідний та кінцевий порожній стовпець Тепер ми інвертуємо комірки:
Тоді у висновку повинні бути межі отриманих многокутників:
Звичайно, ви можете генерувати результат будь-яким іншим способом, якщо виведений результат виглядає однаково.
Вхідні дані
- Ви можете написати програму або функцію, взявши введення через STDIN (або найближчу альтернативу), аргумент командного рядка або аргумент функції, як рядок або список цифр. (Ви не можете прийняти число, оскільки це не дозволить вам підтримувати провідні нулі.)
- Ви можете припустити, що на вході не буде більше 16 цифр.
Вихідні дані
- Вихід може бути відображений на екрані або записаний у файл у загальному форматі зображення.
- Ви можете використовувати як растрову, так і векторну графіку.
- У будь-якому випадку співвідношення сторін комірок основної сітки повинно бути 1 (тобто комірки повинні бути квадратами).
- У разі растрової графіки кожна комірка повинна охоплювати не менше 20 на 20 пікселів.
- Рядки повинні бути не більше 10% від розміру комірок. Я готовий надати один-два пікселі в режимі вільного простору.
- Лінії та фон можуть бути будь-якими двома чітко розрізненими кольорами, але форми, створені лініями, не повинні бути заповнені (тобто нутрощі повинні бути кольором фону).
- У кожному закритому циклі не повинно бути прогалин.
- Звичайно, весь результат повинен бути видно.
Випробування
Ось 10 входів, які разом охоплюють усі можливі пари сусідніх цифр, а також кожну можливу провідну та проміжну цифру:
07299361548
19887620534
21456837709
39284106657
49085527316
59178604432
69471338025
79581224630
89674235011
97518264003
Ось очікувані результати для таких:
Переконайтесь, що ваш код також працює, коли дається одна цифра (я не хочу тут включати очікувані результати, тому що вони повинні бути очевидними, а розділ тестового прикладу достатньо роздутий).