チャレンジ
Code39バーコードのASCII表現を描画するための文字数による最短のコード。
Code 39に関するウィキペディアの記事:http: //en.wikipedia.org/wiki/Code_39
入力
入力は、Code39バーコードの有効な文字列になります。これは、43文字が有効であることを意味します:0
-- 9
A
(Z
スペース)および
-.$/+%
。文字は*
開始文字と停止文字として使用されるため、入力には表示されません。
出力
Code 39バーコードでエンコードされた各文字には、9つの要素、5つのバー、および4つのスペースがあります。バーは#
文字で表され、スペースはスペース文字で表されます。9つの要素のうち3つは幅が広くなります。幅の狭い要素は1文字幅になり、幅の広い要素は3文字幅になります。各文字パターンの間に、単一のスペースの文字間スペースを追加する必要があります。バーコードの高さが8文字になるように、パターンを繰り返す必要があります。
開始/停止文字*
(bWbwBwBwb)は、次のように表されます。
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
# # ### ### #
^ ^ ^^ ^ ^ ^ ^^^
| | || | | | |||
narrow bar -+ | || | | | |||
wide space ---+ || | | | |||
narrow bar -----+| | | | |||
narrow space ------+ | | | |||
wide bar --------+ | | |||
narrow space ----------+ | |||
wide bar ------------+ |||
narrow space --------------+||
narrow bar ---------------+|
inter-character space ----------------+
- 開始文字と停止文字
*
は、バーコードの開始と終了時に出力する必要があります。 - バーコードの前後に静かなスペースを含める必要はありません。
- チェックディジットを計算する必要はありません。
- 完全なASCIICode39エンコーディングは必要ありません。標準の43文字だけです。
- 出力内容を識別するために、ASCIIバーコード表現の下にテキストを印刷する必要はありません。
- 必要に応じて、キャラクターをより高密度の別のキャラクター
#
に置き換えることができます。フルブロック文字U+2588を使用すると、印刷時にバーコードを実際にスキャンできるようになります。
テストケース
Input:
ABC
Output:
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # ### # # ### ### ### # # # # # ### ### #
Input:
1/3
Output:
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
# # ### ### # ### # # # ### # # # # # ### ### # # # # # ### ### #
Input:
- $ (minus space dollar)
Output:
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
# # ### ### # # # # ### ### # ### # ### # # # # # # # # ### ### #
コード数には入出力(フルプログラム)が含まれます。