4-штатні штрих-коди
Багато поштових служб (Royal Mail UK, Canada Post, US Mail тощо) використовують 4-штатний штрих-код для кодування інформації про свою пошту. Наданий у ASCII, це може виглядати приблизно так:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
4-штатний штрих-код - це рядок смужок. Кожна планка може бути розширена вгору, вниз або обидва, що дозволяє 4 можливості. Це означає, що кожен штрих по суті представляє базовий 4-значний розряд:
| | Бар: | | | | | | Цифра: 0 1 2 3
Проблема цієї символіки полягає в тому, що кожен штрих-код є дійсним, різним штрих-кодом догори ногами: різко змінюючи значення, якщо орієнтація неправильна. Отже, послідовність запуску та зупинки зазвичай реалізується, щоб сканер міг обчислити, яким саме способом його слід читати.
Для цього завдання ми будемо використовувати послідовність старту / зупинки, визначену Australia Post: кожен штрих-код починається і закінчується 1 0
послідовністю.
Змагання
Ваше завдання полягає в тому, щоб написати програму або функцію, яка за заданим цілим числом N
перетворює її в 4-станційний штрих-код ASCII, де кожен бар (крім послідовностей запуску / зупинки) являє собою цифру в представленні base-4 N
.
Приклад:
З огляду на ціле число 19623
, ми спершу перетворимо його на його базове представлення 4 10302213
.
Потім ми будемо відображати кожну цифру у відповідній смужці:
1 0 3 0 2 2 1 3 | | | | | | | | | | | | | | | |
Нарешті, ми додамо послідовності старту / зупинки:
Початок: Кінець: 1 0 1 0 | | | | | | | | | | | | | | | | | | | | | |
Отриманий штрих-код повинен бути результатом програми.
Правила:
- Введене число буде додатним цілим числом у межах стандартного цілого розміру вашої мови.
- Вихід:
- Це може бути або список рядків, або рядок, що містить нові рядки.
- Може містити провідні чи зворотні рядки / пробіли, якщо форма залишається цілою.
- Якщо штрих-код повинен бути вказаний у наведеному вище форматі - він повинен використовувати символ "труба" (
|
) та пробіл () під час малювання смуг, а між кожним вертикальним штрихом повинно бути 1 пробіл.
- Це код-гольф , тому найкоротша програма (у байтах) виграє!
Випробування
4095:
| | | | | | | | | | | | | | | | | | | | | | | |
4096:
| | | | | | | | | | | | | |
7313145:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |