This one-liner draws a patchy pattern using a simple game-of-life-like cellular automaton. You can see the pattern evolving.
If you use a larger terminal window, the pattern is larger as well, but the program gets slower. In general, this program isn't written with speed in mind, it could be made much faster.
perl -we '($H,$W)=`stty size`=~/^(\d+) (\d+)/?($1-1,$2):(24,80);$w=$W+ +20;@a = map { rand() < 1/3 } 0 .. ($H+20)*$w; print "\e[H\e[J"; for ( +0 .. 30) { print "\e[H"; for (0 .. 1) { @a = map { $c = $_; $s = 0; $ +s += $a[($c + $_) % @a] for -$w-1, -$w, -$w+1, -1, 1, $w-1, $w, $w+1; + $s < 3 } 0 .. @a - 1; } for $y (10 .. $H + 9) { for $x (10 .. $W + 9 +) { print $a[$y*$w + $x] ? "#" : " "; } print "\n"; } }'
Update: you can try changing the parameter 1/3.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Patchy pattern using a cellular automaton
by wazoox (Prior) on May 23, 2006 at 09:31 UTC | |
|
Re: Patchy pattern using a cellular automaton
by ambrus (Abbot) on Oct 06, 2006 at 18:53 UTC |