@a=0..40;$b[$_]=[map{rand 9<1?0:$"}@a] for@a;{print"\ec",map{@{$b[$_]},$/}@a; select$&,$&,$&,.1;@e=@b;for$r(@a){for(@a ){$h=0;for$i($r-1..$r+1){for$j($_-1..$_+1) {$h++if$e[$i][$j]ne$"&!($i<0|$i>40|$j<0| $j>40)&($i^$r||$j^$_)}}$b[$r][$_]=$h==3| $h==2&$e[$r][$_]ne$"?0:$"}}redo}