8 of 17
Dropped a few more.
luser droog
  • 4.8k
  • 2
  • 31
  • 58

905 797 677 675 629 608 Postscript

<<-1{{30 700 translate 0 0 moveto
currentfile 2{(@A1*)*}repeat exch string
3 2 roll{('BO1)*{( )(@#)*
4(,.N:;<%)*<<( ){p}/#{(1:;>%)*}0{(;,'.)*
6 -26(CE%)*}>>(IJ'B)* known not{p
0}if(LG #C)*}forall(#;*1 D%)*}repeat
p/Times-Roman 8 selectfont 99
string{('BO)*{(@)* length(#=)*{p}{(@#L)*
35(=)*{p}{cvx(GID ?'H*ID ?KHF%)*(   )cvs(E)*}e}e}{showpage
exit}e}loop exit{( @#M# FMF#M)*
closepath}currentpoint stroke eq fill
mul dup token copy rmoveto sub show
neg exec add 1 index 9 get rlineto
put readline}loop}0 1 index 0 get{1
index 1 add}forall pop/*{{32 sub load
exec}forall}/e{ifelse}/p{pop}>>begin(23,?4)*<1f>*

"Readable" version:

<<-1{{
%space  !    "         # $ %      &           '(        )     %*    +      , - .   %/
 30     700  translate 0 0 moveto currentfile 2{(@A1*)*}repeat exch string 3 2 roll
{('BO1)*{( )(@#)* 4(,.N:;<%)*<<( ){p}/#{(1:;>%)*}0{(;,'.)* 6 -26(CE%)*}>>(IJ'B)*
known not{p 0}if(LG #C)*}forall(#;*1 D%)*}
%0      1   2          3 4          5  6     7
 repeat p /Times-Roman 8 selectfont 99 string{('BO)*{(@)* length(#=)*{p}{
(@#L)* 35(=)*{p}{cvx(GID ?'H*ID ?KHF%)*(   )cvs(E)*}e}e}{showpage clear exit}e}
%8    9   :                         %;            <      =    >    ?
 loop exit{( @#M# FMF#M)* closepath} currentpoint stroke eq fill mul
%@   A     B    C       D   E    F   G    H   I J     K L   M       N   O
 dup token copy rmoveto sub show neg exec add 1 index 9 get rlineto put readline
}loop}0 1 index 0 get{1 index 1 add}forall
pop/*{{32 sub load exec}forall}/e{ifelse}/p{pop}>>begin(23,?4)*<1f>*

"Reference" version:

%!
/dx 30 def
/dy 30 def
/Times-Roman 24 selectfont
/square{dx 0 rlineto 0 dy neg rlineto dx neg 0 rlineto closepath}def
{
    30 700 translate 0 0 moveto
    currentfile %F
    2{dup token pop exch}repeat %X Y F
    exch string %X F str
    3 2 roll %F str X
    { %F str
        2 copy readline pop %F str st
        { %F str ch
            ( ) dup 0 4 3 roll put
            square currentpoint stroke moveto %F str ch
            <<( ){pop}
               /#{pop square currentpoint fill moveto}
                0{currentpoint 3 2 roll 6 -26 rmoveto show moveto}
            >> 1 index 2 copy known not {pop 0} if %F str ch D key
            get exec %F str
            dx 0 rmoveto
        } forall
        0 currentpoint exch pop dy sub moveto
    } repeat pop %F
    /Times-Roman 8 selectfont
    99 string {
        2 copy readline {
            dup length 0 eq {pop} {
                dup 0 get 35 eq {pop} {
                    cvx exec
                    1 sub dx mul 2 add exch
                    1 sub dy mul 9 add neg moveto
                    (   ) cvs show
                } ifelse
            } ifelse
        } {showpage exit} ifelse
    } loop clear
} exec

15 15
     #   #


       #     ##
##   #   #
    #     #
   #    #
       #
      #    #
    #     #
    K#   #   ##
##  I  #
    L
    N
    S#   #

#i m n   figure(number), row, col
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 1 7
7 1 8
8 1 9
9 1 11
10 1 12
11 1 13
12 1 14
13 1 15
14 2 1
15 2 6
16 2 10
17 3 1
18 4 1
19 4 9
20 5 3
21 5 7
22 5 8
23 5 11
24 5 14
25 5 15
26 6 1
27 6 2
28 6 6
29 6 10
30 6 12
31 7 1
32 7 5
33 7 10
34 7 11
35 8 1
36 8 4
37 8 9
38 9 1
39 9 8
40 9 13
41 10 1
42 10 6
43 10 7
44 10 12
45 11 1
46 11 5
47 11 7
48 11 11
49 12 3
50 12 6
51 12 9
52 12 10
53 12 14
54 12 15
55 13 1
56 13 2
57 13 8
58 14 1
59 15 1
60 15 7
60 15 11
luser droog
  • 4.8k
  • 2
  • 31
  • 58