xenocara/app/xlockmore/docs/cell_automata
2006-11-26 11:07:42 +00:00

213 lines
8.9 KiB
Plaintext

There are a few modes devoted to cellular automata.
I also added a bunch of options. So I am providing a little explanation
so it is not overwhelming. I also say a little something at the top of the
C file of each. If your favorite little automaton is not here (or you think
it should be enhanced)... let me know.
The modes are ant, ant3d, bug, demon, dilemma, life, life1d, life3d, loop,
voters, wator, and wire.
use -install if netscape is stealing all your colors... :)
Try using with "-inwindow -verbose" though "xlock -help" may be helpful too.
ant: Turing Machines where the tape is the screen.
Special options:
-rule: base 2 string for Turk's Ant
-truchet: this shows the path (good to use with -size at
least 10) Truchet option turned off if its not Turk's ants.
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of ants
-cycles <int>: how many cycles before a new ant
-size <int>: size of ant in pixels
-neighbors <int>: 0 random, 4 & 8 ants, 3, 6, & 12 bees (9 seemed hard
to make consistent, but since 3 was done, there should be a way...)
-eyes: eyes on ant (did not bother for -neighbors 12)
eyes are backwards on triangular ants (easier to place them).
-verbose: verbose to help identify ant (good to use with -inwindow)
ant3d: Turing Machines where the tape is the screen.
Special options:
-rule: base 4 string for Turk's Ant
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of ants
-cycles <int>: how many cycles before a new ant
-size <int>: size of ant in pixels
-eyes: eyes on ant (uhh its just one big eye)
eyes are backwards on triangular ants (easier to place them).
-verbose: verbose to help to identify ant (good to use with -inwindow)
bug: Evolving bugs (big squares) learn to walk straight (except in the garden)
to pick up bacteria food (little squares) unlike other modes there is no
wrapping (this to me is logical because its like the bug is in a glass
jar)
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of bugs
-cycles <int>: how many cycles before a new world
-size <int>: size of bug in pixels
-eyes eyes on bug
-neighbors <int>: 0 random, 4 & 8 rectangular, 6 hexagonal, 3 & 12
triangular (9 seemed hard to make consistent, but since 3 was done,
there should be a way...)
demon: A simple modulo automata
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of states
-cycles <int>: how many cycles before a new screen
-size <int>: size of cell in pixels
-neighbors <int>: 0 random, 4 & 8 rectangular, 6 hexagonal, 3, 9 & 12
triangular
dilemma: Happy (good) and Mean (bad) cells compete for domination
Special options:
-conscious: (default) uses its own state in calculation of payoff
+conscious: does not use its own state in calculation of payoff
-bonus <flt>: payoff for defecting
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of bad or defecting initial cells
-cycles <int>: how many cycles before a new screen
-size <int>: size of cell in pixels (mean faces and happy faces become
polygons and circles if not 0)
-neighbors <int>: 0 random, 4 & 8 rectangular, 6 hexagonal, 3, 9 & 12
triangular (mean faces and happy faces become polygons and circles if
not 4 or 8)
life:
Special options:
-label: pattern name and rule
-sequential: picking of sequential patterns with a rule (use with
middle button)
-rule <string>: survival and birth parameters formated
S<neighborhood>/B<neighborhood>, so John Conway's rule is S23/B3,
David Bell's HighLife rule is S23/B36 (also -highlife),
Nathan Thompson's Day and Night rule is S34678/B3678, (also -daynight)
Two format exceptions:
-rule P: Picks a random rule from all rules that have known patterns
-rule G: Picks a random rule from all rules that have known gliders
-conway: Conway's original Life rule B3/S23
-highlife: Bell's Life rule B36/S23
-daynight: Thompson's Life rule B3678/S34678
-callahan: Paul Callahan's B2a/S2b34 hexagonal life
-andreen: Bob Andreen's B2a3a4b/S2a2b4a hexagonal life
-trilife: Carter Bays' S34/B45 triangular life
-trilife1: Carter Bays' S45/B456 triangular life
-trilife2: Carter Bays' S23/B45 triangular life
-lifefile <filename>: only the #P format of xlife
There is a limit of 128 initial live cells set by NUMFILEPTS in life.c.
Mode options:
-cycles <int>: how many cycles before a new lifeform
-count <int>: number of cycles before glider (if one exists)
-delay <int>: controls the length of a cycle in microsec
-size <int>: size of cell in pixels, if 0 may default to bitmap
-neighbors <int>: 0 random, 4 & 8 rectangular, 6 hexagonal, 3, 9 & 12
triangular
-verbose: verbose to help identify life (good to use with -inwindow)
life1d: 1 dimensional life
Special options:
-totalistic: (default) totalistic 1d life
+totalistic: LCAU collection These rules may not be symmetric and are
more general (totalistic is a subset).
Mode options:
-delay <int>: controls the length of a cycle in microsec
-cycles <int>: how many pages before a new lifeform
-size <int>: size of cell in pixels, if 0 may default to bitmap
-verbose: verbose to help identify life (to be referenced with the source
code) (good to use with -inwindow)
life3d: 3 dimensional life
Special options:
-label: pattern name and rule
-sequential: picking of sequential patterns with a rule (use with
middle button)
-rule3d <string>: survival and birth parameters formated
S<neighborhood>/B<neighborhood>, so Carter Bays' rules are S45/B5, S567/B6,
S56/B5, S678/B5, and S67/B67. There is currently no way of accessing the
neighborhoods 10 to 27 this way (is there a need?).
Two format exceptions:
-rule3d P: Picks a random rule from all rules that have known patterns
-rule3d G: Picks a random rule from all rules that have known gliders
-life3dfile <filename>: similar to the #P format of xlife, 3 integers are
required to center, sequential linefeeds imply a depth change
There is a limit of 84 initial live cells set by NUMFILEPTS in life3d.c.
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of cycles before glider (if one exists)
-cycles <int>: how many cycles before a new lifeform
-verbose: verbose to help identify life (good to use with -inwindow)
loop: Chris Langton's loops this is far as great example of a
self-generating life form.
David Bagley (i.e. myself) made up the hexagon version.
EvoLoopS Evolving SDSR Loop Simulator idea (-evolve) stolen
from Hiroki Sayama <sayama AT is.s.u-tokyo.ac.jp>
LoopS - Structurally Dissolvable Self-Reproducing Loop
Simulator (-dissolve and/or -sheath) idea also stolen from
Hiroki Sayama.
Special options:
-wrap: (default) wrap the borders
+wrap: do not wrap the borders
-langton: normal loops, works for both 4 or 6 neighbors
-evolve: evolving loops
-dissolve: dissolving state for structurally dissolvable loops
-sheath: sheath extension (can be combined with -dissolve)
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of defects (may be less)
-cycles <int>: how many cycles before it starts over
-size <int>: size of cell in pixels
-neighbors <int>: 0 random, 4 rectangular, 6 hexagonal
-verbose: verbose to help identify loop (good to use with -inwindow)
voters: your political belief is influenced by your neighbor
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: number of parties 2 or 3 (3 may not be available)
-cycles <int>: how many cycles before a new world starts
-size <int>: size of cell in pixels (elephants and donkeys become
squares and circles if not 0, hammer/sickle unavailable)
-neighbors <int>: 0 random, 4 & 8 rectangular, 6 hexagonal, 3, 9 & 12
triangular (elephants and donkeys become squares and circles if
not 4 or 8, hammer/sickle unavailable)
wator: sharks and fish on a water torus planet
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: breed time for the fish
-cycles <int>: how many cycles before a new world starts
-size <int>: size of cell in pixels (sharks and fish become polygons
and circles if not 0)
-neighbors <int>: 0 random, 4 & 8 rectangular, 6 hexagonal, 3, 9 & 12
triangular (sharks and fish become polygons and circles if not 4 or 8)
wire: (this mode lacks a good circuit generator) unlike other modes there
is no wrapping
Mode options:
-delay <int>: controls the length of a cycle in microsec
-count <int>: length of random circuit
-cycles <int>: how many cycles before a circuit
-size <int>: size of cell in pixels
-neighbors <int>: 0 random, 4 & 8 rectangular, 6 hexagonal, 3, 9 & 12
triangular