|Aͻͻ
|A |6Brainware |A ^1The Game of Life |Aͺ |6Brainware |A
|Aͼͼ

^CProgram and text by Alan Farmer
^CApologies to John Horton Conway

   Life is a zero-player "game" devised by British mathematician John Horton 
Conway in the mid 1970s.  Our younger readers will not have learned much about 
Life, so here are some of the facts.

   Life is played on a square grid, like a checkerboard, but of unlimited size.  
Each of the cells in the grid is either "alive" or "dead."  Which cells are 
"alive" at Time 0 -- the start -- is up to you.  The state of the board at any 
later time follows from the three simple rules: 

     BIRTH:     A dead cell with exactly three living neighbors will 
                come alive in the next generation.
     DEATH:     A live cell with more than 3 or less than 2 living
                neighbors will die of crowding or exposure, respectively,
                in the next generation.
     SURVIVAL:  A live cell with either 2 or 3 living neighbors will
                remain alive in the next generation.


HOW IT WORKS
------------
   Here's a fairly typical Life history.  We start with a simple line of five 
live cells at Time 0. 

                                         
                            ^1O^0          ^1O^0   
                 ^1O O O^0        ^1O^0  ^1O^0        ^1O O O^0  
      ^1O O O O O^0       ^1O O O^0       ^1O^0    ^1O^0      ^1O O^0  ^1O O^0 
                 ^1O O O^0        ^1O^0  ^1O^0        ^1O O O^0  
                            ^1O^0          ^1O^0   
                                         
        Time 0           Time 1           Time 2           Time 3

   In the first generation (between Time 0 and Time 1), the two cells at the 
ends of the line die of exposure, since they only have one neighbor each.  
However, there are three new births along each side of the original line, 
because those dead cells have exactly three live neighbors (in the beginning).  
So, at Time 1, there is a solid 3x3 block of live cells.  By Time 2, all but the 
corner cells die of overcrowding, and one new cell is born next to the center of 
each side of the square.  And so on. After a few more generations this 
particular pattern becomes a repeating configuration called Traffic Lights. 

   Let's take a look at a few sets of three cells and see what happens to them 
over time. 

             Time     0        1        2        3

                           ^1O^0            ^1O^0     
             (a)    ^1O O O^0     ^1O^0     ^1O O O^0     ^1O^0      A Blinker
                           ^1O^0            ^1O^0 

                    ^1O^0       ^1O^0             
             (b)     ^1O O^0     ^1O^0                  A Blanker
                                        

                                        
             (c)    ^1O^0      ^1O O^0     ^1O O^0     ^1O O^0      A Block
                    ^1O O^0     ^1O O^0     ^1O O^0     ^1O O^0 

   Go ahead and apply the rules of Life to these and convince yourself of their 
behavior.  Both the Blinker and the Block turn out to be extremely common in 
Life.  They come up as parts of larger patterns very often. 


STILL LIFE
----------
   Here are most of the commonly seen stable patterns, officially known as Still 
Life: 

                                      
       ^1O^0     ^1O O^0     ^1O O^0         ^1O O^0    ^1O O^0    
      ^1O^0  ^1O^0   ^1O^0   ^1O^0   ^1O^0   ^1O^0    ^1O^0    ^1O^0  ^1O^0   ^1O^0  ^1O^0   
      ^1O^0  ^1O^0    ^1O^0  ^1O^0   ^1O^0   ^1O^0   ^1O^0  ^1O^0    ^1O^0     ^1O^0  ^1O^0  
       ^1O^0      ^1O^0     ^1O O^0     ^1O^0           ^1O^0   
                                      
      Beehive     Loaf        Pond        Tub       Boat     Long Boat

                                        
             ^1O^0     ^1O O^0    ^1O O^0           ^1O O^0   
            ^1O^0  ^1O^0    ^1O^0  ^1O^0   ^1O^0  ^1O^0    ^1O^0  ^1O O^0   ^1O^0  ^1O^0  
             ^1O^0  ^1O^0    ^1O O^0    ^1O^0  ^1O^0   ^1O O^0  ^1O^0     ^1O^0  
              ^1O^0           ^1O O^0           ^1O O^0 
                                       
              Barge       Ship    Long Ship     Snake       Eater

The mirror images and rotations of these patterns are stable too.

OSCILLATORS
-----------
   There's more to Life than simple stable patterns, though.  There are some 
patterns that, like the Blinker, repeat themselves.  These are called 
oscillators.  An oscillator may have any period greater than one.  Here are some 
oscillators of period 2, discovered over the years by "Lifenthusiasts" (a word 
coined by Robert T. Wainwright): 

       ^1O O^0      ^1O O^0      ^1O O^0      ^1O O 
       ^1O O^0       ^1O^0      ^1O O^0       ^1O^0   The Beacon
     ^1O O^0      ^1O^0       ^1O O^0      ^1O^0               ... blinks
     ^1O O^0      ^1O O^0      ^1O O^0      ^1O O^0  

      ^1O^0        ^1O^0      ^1O^0        ^1O^0 
       ^1O O^0    ^1O^0  ^1O^0       ^1O O^0    ^1O^0  ^1O^0    The Clock
     ^1O O^0       ^1O^0  ^1O^0    ^1O O^0       ^1O^0  ^1O^0            ... ticks
       ^1O^0      ^1O^0        ^1O^0      ^1O^0  

              ^1O^0              ^1O^0 
      ^1O O O^0    ^1O^0   ^1O^0     ^1O O O^0    ^1O^0   ^1O^0   The Toad
     ^1O O O^0     ^1O^0   ^1O^0    ^1O O O^0     ^1O^0   ^1O^0            ... bloats
             ^1O^0              ^1O^0  
     Time 0     Time 1     Time 2     Time 3 


GLIDERS AND SPACESHIPS
----------------------
   When John Horton Conway was first experimenting with this game, he had set up 
a computer to track life patterns.  (This program is probably more powerful than 
Conway's early ones!)  While following the evolution of a deceptively simple-
looking pattern called the "r-pentomino", one of his assistants suddenly said, 
"Come over here, there's a piece that's walking!"  Conway came over and saw the 
following pattern: 

                                         
              ^1O^0        ^1O O^0       ^1O O^0       ^1O O O^0 
     ^1O O O^0       ^1O O^0      ^1O^0  ^1O^0        ^1O O^0        ^1O^0 
       ^1O^0      ^1O^0  ^1O^0        ^1O^0       ^1O^0         ^1O^0  
      ^1O^0                                   
       Time 0       Time 1       Time 2       Time 3       Time 4

   It's called a Glider, and it moves diagonally one step each four generations.  
On a computer display the Glider wiggles along quite quickly, wagging its tail 
behind it. 

                    ^1O^0                        
                     ^1O^0          ^1O O^0         ^1O O O O
                 ^1O^0    ^1O^0        ^1O O^0  ^1O O^0       ^1O^0    ^1O
                  ^1O O O O^0        ^1O O O O^0            ^1O
                              ^1O O^0            ^1O^0 
                   Time 0           Time 1           Time 2   

   This is another travelling pattern, called the Lightweight Spaceship.  You 
can make a Middleweight or Heavyweight Spaceship by lengthening the four-cell 
base to 5 or 6 cells.  Larger Spaceship-like patterns turn out to be unstable.  
All of the Spaceships move orthogonally one cell every other generation. 


A VARIATION
-----------
   By now you're probably wondering: What's so special about this particular set 
of rules?  Mathematically, nothing, but a group of computer scientists at MIT 
investigated many other sets of rules and concluded that Conway's Three Rules of 
Life give the most interesting patterns for any simple game of this class.  The 
MIT group did come up with one other game that is almost as varied and complex 
as Life, though.  It's called 3-4 Life, and its rule is simple: 

     A cell will be alive in the next generation if, and only if, 
     it has either 3 or 4 neighbors now.

   The rule of 3-4 Life favors births more than the regular rules do, and as a 
result, random patches of cells tend to grow and fill the screen, rather than 
thin out and become stable.  3-4 Life is generally more chaotic and more random 
than the standard.  It is also much less thoroughly researched. 

Here are some of the patterns you'll see in 3-4 Life:

                 ^1O^0      ^1O^0        ^1O^0 
               ^1O O O^0      ^1O O O^0    ^1O O O^0      The T 
                 ^1O^0      ^1O^0        ^1O^0 
                                

                 ^1O^0      ^1O^0        ^1O^0 
               ^1O^0  ^1O^0      ^1O^0  ^1O^0    ^1O^0  ^1O^0      The Broken T
                 ^1O^0      ^1O^0        ^1O^0 
                                

                                 
                 ^1O^0      ^1O^0        ^1O^0      The Y
               ^1O O^0       ^1O O^0     ^1O O^0       
                ^1O^0      ^1O^0        ^1O^0  

                 ^1O^0      ^1O^0        ^1O^0  
               ^1O O O^0      ^1O O O^0    ^1O O O^0      The 3-4 Clock
                 ^1O O^0    ^1O^0  ^1O^0       ^1O O^0     
                ^1O^0        ^1O^0      ^1O^0  
               Time 0     Time 1     Time 2 

   There's even a 3-4 Spaceship, which moves one step orthogonally each three 
generations.  It looks like this:

                 ^1O^0        ^1O^0        ^1O^0      ^1O^0   
                ^1O^0  ^1O O^0      ^1O O^0     ^1O O O^0     ^1O^0  ^1O O 
                ^1O^0  ^1O O^0      ^1O O^0     ^1O O O^0     ^1O^0  ^1O O 
                 ^1O^0        ^1O^0        ^1O^0      ^1O^0   
                  Time 0      Time 1      Time 2      Time 3


USING THE PROGRAM
-----------------
   LIFE.EXE attempts to detect the hardware you are using.  If you have a color 
graphics card, such as CGA or EGA, the program assumes you want to use 
colors, while on a computer with a monochrome card such as MDA or Hercules 
the program will run in monochrome.  When running the program from DOS, you can 
override this by using a command line option: 

  "LIFE C" - force the program to run in color.
  "LIFE M" - force the program to run in monochrome.

   (The "GO C" and "GO M" options for the BIG BLUE DISK menu, if used when 
running the issue, will be passed on to Life.)

   After displaying the title screen (from which you continue by pressing any 
key), the program comes up in Edit Mode.  Along the bottom (on color systems 
only) is a color scale that will be used to indicate how long a cell has been 
alive.  The age of a cell has no effect on the rules of the game or the behavior 
of the cell; it just adds some color.  Next (on all systems) there is a counter 
for the generation number and the population.  Finally, there is a status line 
that tells whether the program is running or waiting for editing commands. 

   The following keys are active in edit mode: 

   F1             Help window
   SPACE          Toggles a cell between alive and dead
   CURSOR PAD     Moves the cursor
   ENTER          Begins running continuously from your starting pattern
   CAPSLOCK       Toggles Draw Mode - each cell you move to toggles
   C              Clears the field and resets the counters
   R              Produces a random field of cells. 
   S              Single-steps one generation forward
   L              Toggle between Standard Life and 3-4 Life
   P              Print the screen on Epson or IBM printer, port #1
   CTRL-S         Save the current screen as number 0-9
   CTRL-R         Read a previously saved screen, number 0-9
   U              Undoes all generations since previous Edit or Load
   ESC or CTRL-C  Exit, at any time (displays closing screen, from which
                  any keypress exits the program)

   The random field generator (R key) can be particularly enlightening.  Try 
running several random fields by pressing R to call them up, and ENTER to watch 
them go.  It will give you a pretty good feel for Life in general. Try running 
some of the patterns above, particularly the Glider and the Space-ships.  If 
they are going too rapidly to see clearly, use the single-stepper (S key) to 
advance them one generation at a time.  "Draw" your name and see what happens to 
it.  Experiment! 

   Use the Read function (Control-R) to load some of the supplied examples.  
File number 0 is a screen full of various oscillators, some of them very 
complex, and some stable patterns.  File 1 is the result of a great deal of 
study by the MIT research group.  It is a collision of 13 Gliders, which 
produces a Glider Gun.  This carefully contrived variation creates an endless 
stream of Gliders and was the first pattern proven to grow forever.  File 2 has 
several examples of oscillators and other beasts that run under "3-4" Life.  You 
can use files 3 through 9 for your own creations, or over-write 0, 1, and 2 if 
you wish. 

   Since it's not practical to program the infinitely large grid which the rules 
of Life require, most programs (this one included) compromise by letting 
patterns wrap around the edges of the screen.  Thus a Spaceship that travels off 
the right side of the screen will reappear at the left side. 

   So play with Life.  Change things around and see what happens.  Use Undo a 
lot.  And remember... 

            "Life's too important a matter to be taken seriously." 
                                 --Oscar Wilde


   To run this program outside ^1Big Blue Disk^0, type:  ^1LIFE^0.

   NOTE:  The opening and closing title screens require the user to press any 
key to continue.


DISK FILES THIS PROGRAM USES:
^FLIFE.TXT
^FLIFE.EXE
^FLIFE.SV0
^FLIFE.SV1
^FLIFE.SV2
