Update: Fixed scrolling issue in text mode console
#!/usr/bin/perl
$m=q\$g=59;$s=23;@v=($",$",'.',';','x','X','M');$t=[map{[(s
plit('',$_))[0..$g]]}reverse+split($/,$m)];sub'i{($b)=@_;$b
->[0]=[(0 )x($g+1) ];for(@{$b->[ 0]}){$_=$
#v*(int(r and(7)) <3);}for(1. .($s)){@{
$b}[$_]=[ (0)x( $g+1)]; }}sub'p{( $b)=@_;sy
stem($^O= ~/MSW in32/?' cls':'c lear');$s
tr='';for $r(reve rse(0 ..$s)){fo
r$c(0..$g ){$str.=( $t ->[ $r ][$c]eq$"
?$":@v[in t$b->[$r][$c]]); }$s tr. =$/;}prin
t$str;}su b'f{($x)=@_;$b=[ ];i($b);for$r (1..($s-1
)){for$c( 1..($g-1)){if(in t(rand(2))){$ v=0;for$r
i(-1..1){ for$ci(-1..1){$v +=$x->[$r+$ri ][$c+$ci]
;}}$b->[$r][$c]=$v/9;}else{$b->[$r][$c]=$x->[$r-1][$c];}}}r
eturn $b;}$z=[];i($z);p($z);while(1){$z=f($z);p($z);}\;$m.=
"$/$/$/$/$/$/1;$/$/$/$/$/$/$/";;s//$m/;s/$"//g;s|$/||g;eval
[TINPC@perlcabal.com shh]$
su real