Задача
Самый короткий код по количеству символов для рисования ASCII-представления штрих-кода кода 39.
Статья в Википедии о коде 39: http://en.wikipedia.org/wiki/Code_39
Ввод
Ввод будет строкой юридических символов для штрих-кодов Code 39. Это означает, что действительны 43 символа: 0
- 9
A
- Z
(пробел) и
-.$/+%
. Символ *
не будет отображаться на входе, поскольку он используется как символы запуска и остановки.
Выход
Каждый символ, закодированный в штриховых кодах Code 39, имеет девять элементов, пять баров и четыре пробела. Бары будут представлены символами #
, а пробелы будут представлены символом пробела. Три из девяти элементов будут широкими. Узкие элементы будут иметь ширину одного символа, а широкие элементы будут иметь ширину в три символа. Между символьным шаблоном должно быть добавлено межсимвольное пространство одного пространства. Шаблон должен быть повторен так, чтобы высота штрих-кода составляла восемь символов.
Символ начала/остановки *
(bWbwBwBwb) будет представлен следующим образом:
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
^ ^ ^^ ^ ^ ^ ^^^
| | || | | | |||
narrow bar -+ | || | | | |||
wide space ---+ || | | | |||
narrow bar -----+| | | | |||
narrow space ------+ | | | |||
wide bar --------+ | | |||
narrow space ----------+ | |||
wide bar ------------+ |||
narrow space --------------+||
narrow bar ---------------+|
inter-character space ----------------+
- Знак начала и остановки
*
должен выводиться в начале и конце штрих-кода. - Никакое тихое пространство не должно быть включено до или после штрих-кода.
- Не нужно рассчитывать контрольную цифру.
- Полная кодировка ASCII Code39 не требуется, только стандартные 43 символа.
- Текст описания штрихового кода ASCII не должен печататься, чтобы идентифицировать содержимое вывода.
- Символ
#
может быть заменен другим символом с более высокой плотностью, если это требуется. Использование полного символа блока U + 2588 позволит штрих-коду фактически сканировать при печати.
Тестовые примеры
Input:
ABC
Output:
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
Input:
1/3
Output:
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
Input:
- $ (minus space dollar)
Output:
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
Количество кодов включает ввод/вывод (полная программа).