mirror of
https://github.com/PDP-10/stacken.git
synced 2026-01-27 12:22:01 +00:00
160 lines
6.6 KiB
Plaintext
160 lines
6.6 KiB
Plaintext
- THE LIFE GAME -
|
|
|
|
This is a solitaire game. (for one player).
|
|
It can be played on a checkered board, a piece of paper or a computer.
|
|
The fascinating thing with the game is that you can never predict
|
|
how the pattern changes.
|
|
|
|
The game was invented by J.H. Conway and was published in M. Gardner's
|
|
"Mathematical Games" in Scientific American oct. 1970. It also appeared
|
|
in nov.-70, jan-apr 1971, & jan 1972 issues of Sci. Am.
|
|
|
|
Hope you enjoy it !
|
|
************************************************************************
|
|
- THE LIFE GAME -
|
|
|
|
Rules:
|
|
------
|
|
First you make a pattern with a few marks (called cells).
|
|
Then you change the pattern like this:
|
|
|
|
1. (BIRTHS): Each empty square surrounded by three cells
|
|
[ all 8 directions are counted ] is filled by a new cell.
|
|
These new cells do NOT affect any other births or deaths yet.
|
|
The newborn cells affect births and deaths in the next generation.
|
|
|
|
When you've found all births, continue with
|
|
|
|
2. (DEATHS): All cells surrounded by none or only one cell dies from lonliness,
|
|
and all cells surrounded by four or more dies from crowding. (Cells
|
|
surrounded by 2 or 3 survives). A dying cell affects births and deaths,
|
|
so don't remove any dying cells until you've found them all.
|
|
|
|
3. When all dying cells are removed, the newborn become adult.
|
|
Now you can begin from 1. with another generation.
|
|
|
|
|
|
************************************************************************
|
|
COMMAND PARAMETERS EXPLANATION
|
|
------- ---------- -----------
|
|
I nsert <X Y> (<CR><X Y>...) end with <esc> when finished
|
|
D elete <X Y> (<CR><X Y>...) end with <esc> when finished
|
|
C cancels latest I or D item
|
|
E rase <X Y> deletes connected cells also
|
|
T ransfer <X Y TO X Y> transfer connected cells also
|
|
M ove <+-X +-Y> moves all cells in given direction
|
|
ADD <name> add a saved population
|
|
WALk V,B,>,<,C,space fast & easy "footprint" editor
|
|
NEW <name> create a new population
|
|
OLD <name> gets a saved population
|
|
REName <name> give the population a new name
|
|
AGE <number> change the age to <number>
|
|
SCRatch delete all cells
|
|
SAVe save the population on a file
|
|
KILl <name> removes a population from the file
|
|
CATalog lists the saved populations
|
|
CHAracters <CR><2 characters> alter characters in population display
|
|
RUN <CR> or <n><CR> run population <n> generations. [n<100]
|
|
GO run forever
|
|
-In the first group: use only the first command character.
|
|
In the second group: only UPPER CASE letters in commands are nessecary.
|
|
************************************************************************
|
|
For convenience, there are 3 more commands:
|
|
APPend (equal to ADD)
|
|
NAMe (equal to REName)
|
|
BYE (to finish session, instead of control-C).
|
|
|
|
The Erase and Transfer commands affects a whole group of cells,
|
|
which are adjacent to each other. By simply giving the coordinates
|
|
for one of them, you delete or move all of them.
|
|
|
|
The SAVe command saves a copy of the population pattern on a file.
|
|
After that, you can use:
|
|
|
|
OLD to get it back later
|
|
ADD to add it to another poulation pattern later
|
|
KILl to wipe it out from the file
|
|
CATalog to see if it's there and its age.
|
|
|
|
The NEW command is equal to AGE 0 + SCRatch + REName.
|
|
|
|
When choosing characters in the display (either in the beginning, or later
|
|
with the CHAracters command), the following combinations are recommended:
|
|
cell : * * O <space>
|
|
no cell : <space> - <space> O
|
|
************************************************************************
|
|
- HOW TO RUN THE POPULATION -
|
|
|
|
1. Using the RUN command.
|
|
-------------------------
|
|
The RUN command will run the population one generation.
|
|
If you want more than one generation, just press <CR> again,
|
|
and you'll get another, as long as you wish.
|
|
Or, type RUN n to get n generations. (max for n is 100).
|
|
Instead of RUN n, RUN n... as above you can type n <CR>, n<CR>..
|
|
Note that these 'tricks' only works after a RUN command.
|
|
Examples:
|
|
|
|
:> RUN <CR> :> RUN 3 <CR>
|
|
:> <CR> :> 5 <CR>
|
|
:> <CR> :> <CR>
|
|
:> 2 <CR> :> RUN <CR>
|
|
|
|
2. Using the GO command.
|
|
------------------------
|
|
If you want LIFE to RUN forever, use the GO command.
|
|
It is recommended to have the population SAVed before, because you
|
|
won't get back to :> mode again. (Unless all cells die out, or
|
|
something similar occurs; thus saving costly CPU time.)
|
|
************************************************************************
|
|
- HOW TO EDIT A POPULATION -
|
|
|
|
1. Using Insert & Delete commands.
|
|
----------------------------------
|
|
Type I or D folowed by two numbers. If you want to insert or delete more
|
|
than one cell, you type <CR> after the coordinates, otherwise <esc>.
|
|
After typing <CR>, you will see + or - instead of :> as usual.
|
|
Now you can type one of these three alternatives:
|
|
a) <X Y> -to insert or delete cell in (X,Y)
|
|
b) I or D (and then <X Y>) -to change insert-delete mode
|
|
c) C -to cancel the latest item.
|
|
|
|
When you're finished, type <esc> instead of <CR>, and you'll get back to :>
|
|
|
|
Example 1 Example 2
|
|
:> I 5 5 <CR> :> D <CR>
|
|
+ 6 5 <CR> - I 5 5 <CR>
|
|
+ 7 5 <CR> + 6 5 <CR>
|
|
+D 6 5 <CR> + 7 5 <CR>
|
|
- C <CR> + 8 5 <CR>
|
|
-I 8 5 <esc> + <esc>
|
|
:> [now you have 4 cells] :> [same result]
|
|
|
|
************************************************************************
|
|
- HOW TO EDIT A POPULATION -
|
|
|
|
2. Using the WALK command.
|
|
--------------------------
|
|
The WALk command provides very fast and easy editing, especially with large
|
|
population patterns. It is definitely recommended in all cases. Do like this:
|
|
a) type WALK [ or just WAL ]. Press Return.
|
|
(the cursor will now be placed in the middle of the screen.)
|
|
b) type one of:
|
|
< [or ,] - move cursor to the left
|
|
> [or .] - move cursor to the right
|
|
V - move cursor down
|
|
B - move cursor up
|
|
C - insert a cell at cursor
|
|
<space> - delete cell at cursor
|
|
Repeat b) as long as you wish. Don't use <CR>.
|
|
c) finish with <CR>.
|
|
In this way you can "walk" around and change the population pattern.
|
|
EXAMPLE:
|
|
:> WAL [CR]
|
|
C>C>CVC<C<C<CV<C<BCBCBC<CVC<C [CR]
|
|
:>
|
|
[warning: Avoid using control-C, because the terminal is in TTY NO ECHO mode.]
|
|
************************************************************************
|
|
|
|
Program written 1978 by Per Lindberg, Royal Institute of Technology, K3
|