http://qs321.pair.com?node_id=487654

A tribute to perl/Tk -- this runs under both Linux and Windows (Linux needs the Tk module installed, though).

(Note: if it runs too fast or slow, try changing the '100' in the last line to another value).

Update:  If the display looks funny (eg. you see red '+' symbols used for line-continuation), try going to User settings and use a value of 80 or higher for "Code Wrap Length".

$p = sub{$_='JA{23z11z\'2z23z42)"2)*++,z:1-.(6>F=>y3EFGEML'. 'LMMNM[ksz7Ez6I{3Qz3Mz)Qz2Kz1Iz2G{2=z2;z38z49z48|37z27z17z'. '16z25z43z33z51z7\'z71z81&zE2zK\'zU!zO\'zK)z=30(\'55-5<[aq'. 'z5=z5Ez6ErkSS>7/7\'&z91-<<y4C;D;4;<;C[kkrsb[c[cb[[y3SLSLL'. 'TMMLLEDD4=,,.,-,3D;CLL[\\\dS\Sc[[[[[[[[SZRQJIRJJIBz469BCB'. 'LSLy3ULLMNMDE3<%z81-,34#,z81$+;CCD;<CLCCLCcsz7Ez7G{7=skd['. 'd]no`z=9zE7PG@?MFL LMz=7zO7zU7zQ7zE7LY y3C<;;y4CJJz47z39{'. '49{4:z2;z3<bcRy4S[LUNNOPMDDCD;<4-%-4DD<CSbcjZcbSSZSLTLMy3'. 'LMD=>=C<<;4<Cy3DELDckky3cZZ;,4455DD<DDLLCLCS[y3k[y5Sy4M=='. '<<=<=4;D<Cbbi[Rc[Zy4STy3LED<<C<D;DCC;y7Cy7Jy3LNENF=ELC<=<'. '<=<4D<DCSbbqqirj[b[y3S[y6SLTL\y3LTL=-55,5%..5445<;CCDy4CS'. '[cZijrqjbZbZZ[RSRSSJSS;<555=5==DE<DL[[kccjc[R[y3Ly3NEM=E='. 'D=D5<;;<y6CJIy3JRZQYZQ[R[[[S[S[STSLTMOOM=65/6<DCC<Dy3Cy3LS' .'TSTy5S[[y3S[S[[SSTTMNzG8zM7{Q7z=7M ' .'DNPzI7zG6zI6zG7PPNLML S[[c[y4ckssrc' .'bjkbcZbjjby4ZaZaZZRRZSy4RSy3JI2;22+' .'3+++5-z:)&z:)\'' .'&/(&/6GGHGNNO{=7' .'WOy3' + .'Tecd' .'[ccjYaaYz49IQ|37{27z17z27z)6{36 MMN' .'FDED' +.'D>D<' .'DDCD;DC;y3CJJy4Iz47IIJRRSbZcb[ck[[[' .'[T\L' . +'TLLM' .'NFE=67>>DD<<D<<<y3C;<CLSTLSLSLSS[y3' .'S[S[' .' +[k[[' .'y4STLLMNy4M=F87665-<454%4+4443;Dy4C' .'<CCI' .'J +JQI' .'RQJQYRZR[bZbcbcjjcb[c[[S[[c\\TTy3UV' .'XOPz' .'G7 +zI' .'6PMz1: LLN??0>67(/.6-4<;CC;CCA:JBJJ' .'IJJR' .'biz +6' .'=z4;qz6=z6Gz6=kjqz6Eiy3bZRSSRC4&\'z' .';1\'' .'z;1. +' .'<<<y3Ld[[cSy4cy3S[y3STSLSSLLML<<4-4' .'454=' .'-EDL' .'DMOHN{47JJIJQRQYZYbaz4;Yby5SLLM>DML' .'LDED' .'ELDC' .'C<D<;;CCD;D<Sccrcbcy4SUy6LDE;<;<=,5' .'5>==' .'5ELD' .'DLIQYYZQbYZZb[[S[[LSy3LMMEFE>=-\'..' .'5,+,' .',,34' .';;;4;y3CD[ckz6=z5Ez6ErrskjbZ[ZSJ;3$' .',4D4' .'5--4' .'<E<F=E<y3Ly5SZRSJSRJRQJYy3JST[Sc\[c' .'T[\\' .'\LTL' .'LUNy3ME=E=<D<<;D;<CC;y7Cy6JRJSR[Z[R' .'c[[S' .'[SSU' .'MUy4LDELD=y3D<D<D=<DC;Ly4CLy5SLLUUL' .'TLy4'.'Sckb' .'rkck]z=8zO8zY8 S[sz6=z7=z6=z5Gz7=z6' .'=jrj'.'rZSS' .'R y3JSJZRRSR[SS[Sy3Ty6LM=DL=DDCLC;y' .'4CJA'.'BIBy' .'7J';while(m*y([1-9]\d\*)([a-z0])*i){ ($m,$n)=("y$1" ."$2",$2x$1);s=$m=$n=}&x( [map{my@ if; while(s /(.)//) {;if(121>($q=(ord$1)-1)){$b=int($q/8); push@if ,$q-8*$ b-2,$b-9;} else {s-(.)(.)--;push@ if,( ord($1) - 0x37, ord($2)-55)x($q-120);}}\@if;}split' '] )}; use Tk; $W= new MainWindow;$V=$W->Canvas(-height=> 300,-bg =>"#ff" ."ffef",-width=>700)->pack;$W->Button( -text=> "Exit", -command=>sub {exit},-bg=>'#ffef00')-> pack;$W ->after (99=>$p);MainLoop;sub x{my$p=$_[0];for ($v=0;$ v<@$p; +$ v++){$z=$p->[$v];$r=sprintf"#%06x",($v <2)?0:( $v<4 +)? 4243520:($v<6)?1671168_0:($v<7)?33023: 8323199 ;$w= +($v <7)?5:25;$e=(0x8a,220,387,440,151,165, 321,649 ,62 +7)[$ v];$f=(0x70,66,88,55,168,255,219,13_5, 239)[$v ]; +while (@$z){($g,$h)=splice(@$z,0,2);($i,$j)= ($e+$g, $ +f+$h); $V->createLine($e,$f,$i,$j,-width=>$w, -fill=> +$r);($e ,$f)=($i,$j);map{$V-> update}(0 .. 100 ) ; ; } + } } ; #

Edited by Chady -- restored code tags.

Replies are listed 'Best First'.
Re: Ticklish Japh
by zentara (Archbishop) on Aug 30, 2005 at 10:35 UTC
    WoW! Extremely nice. I can't believe you packed so much action into such a small amount of code.

    But I think you need code tags or something, because the code dosn't show the 'K' in my browser.


    I'm not really a human, but I play one on earth. flash japh
      Thanks, zentara -- I very much appreciate your encouragement!

      I did actually spend longer on data compression than any other part of the program; it's still longer than I was hoping for, but I didn't want to sacrifice the feeling of the letters being drawn by a human, just to get the size down a bit.

      It's odd, though, that it doesn't render correctly.  It does have code tags in it, and I've tried it with success under both Firefox and IE.  Do you see anything at all, or is the "k" just completely absent?

        I'm using Mozilla. The code looks like a solid block, except where the K should be. At the K, I see an area of random spaces, with a faint resemblance to a K....kind of a 105 year-old K, bent and twisted. :-)

        I'm not really a human, but I play one on earth. flash japh