1-d cellular automata
Kragen Sitaker
kragen@pobox.com
Wed, 19 Apr 2000 23:47:58 -0400
This program draws 1-dimensional cellular automaton histories on the
screen. It is kind of neat to watch, especially if you know what's
going on; unfortunately, many of the patterns are hideously ugly, even
the interesting ones, despite my best efforts to avoid unnecessary
ugliness.
I wrote my first 1-D CA when I was 11 or 12 and was astonished that it
produced a Sierpinski triangle. Quite a number of these do, in fact ---
finding out whether this was true was the initial motivation for this
program.
Mostly I just wrote it because I wanted to send out something cool
tonight and didn't think I could do anything sufficiently cool with
APL to be worth sending. I probably should be in bed by now anyway. :)
begin 664 1dca-0.tar.gz
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
5""&$$$(((8000EP:!UMMK)X`>```
`
end