Chip, 142142 135 bytes
! CvDvB
>v-]-x.
|Z-]-]e
|Z]xe|
|ZR(-'
|Zx.AD
|Zxx]x.
|Zx^-]e
|Z<,(-.
|Zx]xe|
|Zx-]-]e
|Zx-]-x'
|Z<C^D^B
|>x~s
|Zx.ac
|Zx+^<|Zx<
|Zx'bd|Zxb
|Z^-^^~f|Z+^~f
`z`zd
Input is a string of digits. Uses zeroes as the pips. Draws the pips for one number, reads next input byte. If no next byte, terminate, else draw the dashesdivider and go to start.
Each Z
(or z
) corresponds to one character of output, they are positioned to fire in order top to bottom. The capitalized A
, B
, C
, and D
correspond to the low four bits of the input (that's all we look at, so "34" == "CD" == "st" ...
). The lowercase ab
, bd
, ce
, ...f
correspond to thevarious bits of the output. The low 6 bits are touched.
Can make infinite-length dominoes too; try giving 0123456789
as input.