http://qs1969.pair.com?node_id=484536

Try running this in an xterm window!


#!/usr/bin/perl -w
sub d($){defined($        _[             0])}sub p(        $){print    @_}sub r
         ($$)            {int            $_[0]+rand($_     [1]-$_[0    ]+1)}$|=
         016;            my$a            =2;sub c{p"\e"    ."[H";;p    "\e[J";}
         open           (Y,$0)            ;my(    @y,$y)     ;for        (;;)
         {&d(          $y=(<Y>)           ) or    last;;     push        @y ,
         $y.(         ' '   x80           )} $SIG{INT}=      sub{c;exit};c;my
         $b=0        ;;;    for(;         ;){my($r,$c)       =(r(1,@y),r(1,80
         ));;       my$k=(substr($        y[$r-              1],$        c-1,
 1));;   ;;;;      printf"\e[%d;".        "%d".              "H".        "\e"
 ."[1"   .";"     ."7;"       ."%s"       ."m".              "%s"        ."".
 "\e[0m",$r,    $c,r(30,    37),$k if   $k ne" ";          }return;   ;__END__;
    __Just_    _Another_    PerlHacker  by_John_C          _Norton_   8/17/2005


Downloadable code:
#!/usr/bin/perl -w sub d($){defined($ _[ 0])}sub p( $){print + @_}sub r ($$) {int $_[0]+rand($_ [1]-$_[0 + ]+1)}$|= 016; my$a =2;sub c{p"\e" ."[H";;p + "\e[J";} open (Y,$0) ;my( @y,$y) ;for + (;;) {&d( $y=(<Y>) ) or last;; push + @y , $y.( ' ' x80 )} $SIG{INT}= sub{c;exi +t};c;my $b=0 ;;; for(; ;){my($r,$c) =(r(1,@y) +,r(1,80 ));; my$k=(substr($ y[$r- 1],$ + c-1, 1));; ;;;; printf"\e[%d;". "%d". "H". + "\e" ."[1" .";" ."7;" ."%s" ."m". "%s" + ."". "\e[0m",$r, $c,r(30, 37),$k if $k ne" "; }return; +;__END__; __Just_ _Another_ PerlHacker by_John_C _Norton_ +8/17/2005

"download section" added by holli