[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference rusure::math

Title:Mathematics at DEC
Moderator:RUSURE::EDP
Created:Mon Feb 03 1986
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2083
Total number of notes:14613

101.0. "The Game of Life" by XENON::GAUDREAU () Fri Jul 27 1984 12:54

   Anyone remember the Game of Life that was created by J. Conway?  Just as
I was getting into computers, I got hooked on it.  Consequently, I wrote
several program, some in machine language, to let me watch the interactions.
Does anyone know of any programs to do the same thing on a VT125 or such?
A fast program would be nice too!!
   Other than Byte and Scientific American, has there been any other work
done in this area?  It just sort of dried up and hid do to lack of interest!!

 Joe
 -=-
T.RTitleUserPersonal
Name
DateLines
101.1ADVAX::J_ROTHFri Jul 27 1984 15:5118
Though I was never too interested in the Game itself, I did find it an
interesting programming problem.  I've written one interesting version
that runs on the PC/350 directly using the video bitmap which is
fast enough that the patterns look like they are boiling in real-time.

The data-structure is very compact (one word for each unique X-coordinate
followed by the associated Y-coordinat values) and gives 15 bits of
address space on a side.  A series of macro expansions scan this stucture
as a sort of distributed state-machine producing the next generation
very quickly indeed, only a small number of memory cycles per point.

I've been too lazy to do a fancy editor for it, or a census taker or
any of that; maybe if I get a Mouse I'll try.  You can contact me if you
want to play with the program as it is.  It could be easily modified
to display on a terminal, but not too worthwhile since you need agile
graphics to really see the program run.

- Jim
101.2SILVER::TURANOWed Aug 08 1984 17:1718
Actually the interest in cellular automata is on the rise again but
for different reasons than originally anticipated (i.e. see nice
patterns). A review of some of the recent work in the field is given
in the Fall 1983 issue of Los Alamos Science No. 9. 

S. Wolfram has studied 1-D automata extensively and is interested
in how they seem to relate to the field of Chaos. It seems that
certain rules about state changes as related to nearest neighbors
result in self-organizing structures while others lead to chaotic behavior.

Wolfram has also published a review of his work in Reviews of Modern 
Physics Vol 55 No.3 July 1983, page 601.

It probably should also be mentioned that several other authors have
used cellular automata models for such things as neuron firing patterns
and tissue growth. If you want these references I can supply them.

101.3HARPO::GORMANThu Aug 23 1984 11:317
There is 3 chapters in Martin Gardner's new book "Wheels, Life, and other
Mathematical Amusements" 1983.
	Also interesting article "Life after Death" - Pat Macaluso in
BYTE July 81 pp 326-333. That article also points to "Life algorithms"
by Marc Niemiec in BYTE Jan 79 p90.

					Bob
101.4TURTLE::GILBERTThu Aug 23 1984 15:517
While they last, you can grab copies of TURTLE::SYS$PUBLIC:LIFE.EXE, which
runs on VAXen for VT52s and VT100s.  The program prompts for a file (containing
blanks, tabs, and non-blanks, for the initial screen), and a number (to display
every delta iterations; 1, 2, 3 and 6 are good).  It was written primarily as a
test or demo of the ANIMOD near-minimal screen update package (available from
the tools clearinghouse).
					- Gilbert
101.5ADVAX::J_ROTHTue Sep 04 1984 05:0013
A pair of copies of the direct-bitmap life program mentioned in 101.1
is available in ADVAX::USER1:[JROTH]LIFACORN.TSK and LIFPUF.TSK.
One has the 'acorn' starting pattern which blows up leaving much
debris.  LIFPUF is initialized with a puffer train (I forget which
type) which goes to the right filling the screen with objects.

You'll need a PC350 with an extended bitmap option, since I use
one of the extra planes as a frame buffer between updates.  There
isn't a command interface or anything - the program just tests the
algorithm out.  I was working on a screen editor, and will probably
finish it sometime.

- Jim
101.6SPRITE::OSMANFri Jun 07 1985 10:3932
Anyone have one for VAXstation 100 or VAXstation I (ucro vax) ?

I was hanging around the MIT AI lab a number of years ago just as Bill
Gosper was about to perfect his absolutely amazing life population.

The setting was a round green screen with white graphics, namely a DEC 340
display, one of the true vector displays.  We were on a pdp6 (9th floor of
545 Tech Square).

Anyway, Bill Gosper had already won $50 in a contest whose task was to
prove or disprove that a life population could grow forever.  Bill won
it with the glider gun, a 46-cycle population 31 (or is it reversed?)
pattern that spits out glider guns.

Well, the new contest was to decide if any population could grow proportionately
to t^2, which would be the fastest possible growth, given the 2-d restraint.

Puffer trains had already been discovered, which move in a direction leaving
debris behind.

The amazing thing I had the pleasure to be witness to was Bill Gosper's
discovery of a puffer train that spews out glider guns as its debris !  This
satisfys the new contest.

Since the train moves to the right, and the guns are spittin' gliders
downward on the screen, the guns at the end of the tail have spit the most
glider guns.  When the entire population is scaled down on the display, it
looked like a fish swimming to the right with a lengthening triangular
tail that continues to widen at its tip.

/eric
     
101.7ADVAX::J_ROTHFri Jun 07 1985 11:1012
I don't have one for the Vaxstation yet, but the one I did for the PC/350
(and 380) is pretty impressive.  Since I now have access to a vaxstation
I will probably try translating it to VAX assembler in the near future.

If you have a PC/350 or PC/380 around try one of the following programs:

ADVAX::USER1:[JROTH.BITMAP]LIF*.TSK or LIF*380.TSK.  You need an extended
bitmap since I use it for a frame buffer.

It runs under P/OS; just copy it and run the task image under the toolkit.

- Jim
101.8PIPA::JANZENThu Jun 20 1985 12:375
I wrote a life for vax pascal and vt100 with an input file.  Files of
16*16 boudaries run about 3/second on a loaded 785.  Full screens run
considerably more slowly.
Ask for it.
Tom
101.9collections of known patterns?FSTVAX::DICKINSONdoug dickinsonTue Sep 02 1986 23:4912
    i notice one note in here talking about glider guns and puffer trains.
    are there any books (or files) which have pictures of these or other
    "known" patterns.
    
    i've written a version of life (so, who hasn't) and i want to test
    it.  taking known patterns and seeing that they perform as expected
    is one way i can think of.

    yes, i already know about the battle of the languages, and i'll
    definitely check there, asap.
    
    						dd
101.10A simple starting pattern...JON::MORONEYMadmanWed Sep 03 1986 01:1311
I don't know of any "collection" of starting patterns, but here's a good one...

Pick a point (X,Y) where X is 1/2 the field width, and Y is 3/4 the height.
Make the following "living":  (X-1,Y-1) (X-1,Y) (X-1,Y+1) (X,Y-1) (X+1,Y-1)
(X+1,Y) (X+1,Y+1), and everything else "dead".  This thing grows and grows, I
don't know if it ever reaches a stable state of some sort.  It looks like a
robot at times. 

Something I've always wanted to do and haven't (yet) is LIFE on a Hex Grid. 

-Mike
101.11Some sample patternsEAGLE1::DANTOWITZDavid .. DTN: 226-6957Wed Sep 03 1986 10:081103
	I archived these years ago, but since I haven't yet written
  	a LIFE program, I've never tested them.  Good luck.

	David

$ type chase.dat
3,34
4,35
5,35
5,34
5,33
10,38
11,39
12,39
12,38
12,37
$ type divebomb.dat
1,1
2,2
2,3
3,1
3,2
18,19
19,18
19,20
20,18
20,20
21,19
$ type glider.dat
2,2
3,3
3,4
4,2
4,3
2,39
2,41
3,39
3,40
4,40
$ type glidergun.dat
2,25
2,26
3,24
4,23
4,37
5,14
5,23
5,36
5,37
6,13
6,14
6,23
6,39
6,40
7,24
7,39
7,40
7,41
7,48
8,25
8,26
8,39
8,40
8,47
8,48
9,36
9,37
10,37
$ typ harvest2.dat
5,38
5,39
5,42
5,43
6,39
6,42
7,38
7,43
8,37
8,44
9,36
9,45
10,35
10,46
11,34
11,47
12,33
12,48
13,32
13,49
14,31
14,50
15,30
15,51
16,29
16,52
17,28
17,53
18,27
18,54
19,26
19,55
20,25
20,56
21,24
21,57
22,23
22,58
20,21
20,22
20,23
20,24
21,21
21,22
21,23
22,21
22,24
20,57
20,58
20,59
20,60
21,58
21,59
21,60
22,57
22,60
$ type spaceship.dat
19,3
19,4
19,5
19,6
20,2
20,6
21,6
22,5
$ type spaceshp2.dat
5,3
5,4
5,5
5,6
6,2
6,6
7,6
8,5
20,76
20,75
20,74
20,73
19,77
19,73
18,73
17,74
$ type spaceshps.dat
5,7
6,8
7,4
7,8
8,5
8,6
8,7
8,8
10,70
11,69
12,69
12,74
13,69
13,70
13,71
13,72
13,73
15,5
15,6
15,7
15,8
15,9
15,10
16,4
16,10
17,10
18,9
$ type virus.dat
 2,37
 1, 1
 1, 2
 2, 1
 2, 2
 4, 1
 4, 2
 5, 1
 5, 2
 7, 1
 7, 2
 8, 1
 8, 2
10, 1
10, 2
11, 1
11, 2
13, 1
13, 2
14, 1
14, 2
16, 1
16, 2
17, 1
17, 2
19, 1
19, 2
20, 1
20, 2
22, 1
22, 2
23, 1
23, 2
 1, 4
 1, 5
 2, 4
 2, 5
 4, 4
 4, 5
 5, 4
 5, 5
 7, 4
 7, 5
 8, 4
 8, 5
10, 4
10, 5
11, 4
11, 5
13, 4
13, 5
14, 4
14, 5
16, 4
16, 5
17, 4
17, 5
19, 4
19, 5
20, 4
20, 5
22, 4
22, 5
23, 4
23, 5
 1, 7
 1, 8
 2, 7
 2, 8
 4, 7
 4, 8
 5, 7
 5, 8
 7, 7
 7, 8
 8, 7
 8, 8
10, 7
10, 8
11, 7
11, 8
13, 7
13, 8
14, 7
14, 8
16, 7
16, 8
17, 7
17, 8
19, 7
19, 8
20, 7
20, 8
22, 7
22, 8
23, 7
23, 8
 1,10
 1,11
 2,10
 2,11
 4,10
 4,11
 5,10
 5,11
 7,10
 7,11
 8,10
 8,11
10,10
10,11
11,10
11,11
13,10
13,11
14,10
14,11
16,10
16,11
17,10
17,11
19,10
19,11
20,10
20,11
22,10
22,11
23,10
23,11
 1,13
 1,14
 2,13
 2,14
 4,13
 4,14
 5,13
 5,14
 7,13
 7,14
 8,13
 8,14
10,13
10,14
11,13
11,14
13,13
13,14
14,13
14,14
16,13
16,14
17,13
17,14
19,13
19,14
20,13
20,14
22,13
22,14
23,13
23,14
 1,16
 1,17
 2,16
 2,17
 4,16
 4,17
 5,16
 5,17
 7,16
 7,17
 8,16
 8,17
10,16
10,17
11,16
11,17
13,16
13,17
14,16
14,17
16,16
16,17
17,16
17,17
19,16
19,17
20,16
20,17
22,16
22,17
23,16
23,17
 1,19
 1,20
 2,19
 2,20
 4,19
 4,20
 5,19
 5,20
 7,19
 7,20
 8,19
 8,20
10,19
10,20
11,19
11,20
13,19
13,20
14,19
14,20
16,19
16,20
17,19
17,20
19,19
19,20
20,19
20,20
22,19
22,20
23,19
23,20
 1,22
 1,23
 2,22
 2,23
 4,22
 4,23
 5,22
 5,23
 7,22
 7,23
 8,22
 8,23
10,22
10,23
11,22
11,23
13,22
13,23
14,22
14,23
16,22
16,23
17,22
17,23
19,22
19,23
20,22
20,23
22,22
22,23
23,22
23,23
 1,25
 1,26
 2,25
 2,26
 4,25
 4,26
 5,25
 5,26
 7,25
 7,26
 8,25
 8,26
10,25
10,26
11,25
11,26
13,25
13,26
14,25
14,26
16,25
16,26
17,25
17,26
19,25
19,26
20,25
20,26
22,25
22,26
23,25
23,26
 1,28
 1,29
 2,28
 2,29
 4,28
 4,29
 5,28
 5,29
 7,28
 7,29
 8,28
 8,29
10,28
10,29
11,28
11,29
13,28
13,29
14,28
14,29
16,28
16,29
17,28
17,29
19,28
19,29
20,28
20,29
22,28
22,29
23,28
23,29
 1,31
 1,32
 2,31
 2,32
 4,31
 4,32
 5,31
 5,32
 7,31
 7,32
 8,31
 8,32
10,31
10,32
11,31
11,32
13,31
13,32
14,31
14,32
16,31
16,32
17,31
17,32
19,31
19,32
20,31
20,32
22,31
22,32
23,31
23,32
 1,34
 1,35
 2,34
 2,35
 4,34
 4,35
 5,34
 5,35
 7,34
 7,35
 8,34
 8,35
10,34
10,35
11,34
11,35
13,34
13,35
14,34
14,35
16,34
16,35
17,34
17,35
19,34
19,35
20,34
20,35
22,34
22,35
23,34
23,35
 1,37
 1,38
 2,37
 2,38
 4,37
 4,38
 5,37
 5,38
 7,37
 7,38
 8,37
 8,38
10,37
10,38
11,37
11,38
13,37
13,38
14,37
14,38
16,37
16,38
17,37
17,38
19,37
19,38
20,37
20,38
22,37
22,38
23,37
23,38
 1,40
 1,41
 2,40
 2,41
 4,40
 4,41
 5,40
 5,41
 7,40
 7,41
 8,40
 8,41
10,40
10,41
11,40
11,41
13,40
13,41
14,40
14,41
16,40
16,41
17,40
17,41
19,40
19,41
20,40
20,41
22,40
22,41
23,40
23,41
 1,43
 1,44
 2,43
 2,44
 4,43
 4,44
 5,43
 5,44
 7,43
 7,44
 8,43
 8,44
10,43
10,44
11,43
11,44
13,43
13,44
14,43
14,44
16,43
16,44
17,43
17,44
19,43
19,44
20,43
20,44
22,43
22,44
23,43
23,44
 1,46
 1,47
 2,46
 2,47
 4,46
 4,47
 5,46
 5,47
 7,46
 7,47
 8,46
 8,47
10,46
10,47
11,46
11,47
13,46
13,47
14,46
14,47
16,46
16,47
17,46
17,47
19,46
19,47
20,46
20,47
22,46
22,47
23,46
23,47
 1,49
 1,50
 2,49
 2,50
 4,49
 4,50
 5,49
 5,50
 7,49
 7,50
 8,49
 8,50
10,49
10,50
11,49
11,50
13,49
13,50
14,49
14,50
16,49
16,50
17,49
17,50
19,49
19,50
20,49
20,50
22,49
22,50
23,49
23,50
 1,52
 1,53
 2,52
 2,53
 4,52
 4,53
 5,52
 5,53
 7,52
 7,53
 8,52
 8,53
10,52
10,53
11,52
11,53
13,52
13,53
14,52
14,53
16,52
16,53
17,52
17,53
19,52
19,53
20,52
20,53
22,52
22,53
23,52
23,53
 1,55
 1,56
 2,55
 2,56
 4,55
 4,56
 5,55
 5,56
 7,55
 7,56
 8,55
 8,56
10,55
10,56
11,55
11,56
13,55
13,56
14,55
14,56
16,55
16,56
17,55
17,56
19,55
19,56
20,55
20,56
22,55
22,56
23,55
23,56
 1,58
 1,59
 2,58
 2,59
 4,58
 4,59
 5,58
 5,59
 7,58
 7,59
 8,58
 8,59
10,58
10,59
11,58
11,59
13,58
13,59
14,58
14,59
16,58
16,59
17,58
17,59
19,58
19,59
20,58
20,59
22,58
22,59
23,58
23,59
 1,61
 1,62
 2,61
 2,62
 4,61
 4,62
 5,61
 5,62
 7,61
 7,62
 8,61
 8,62
10,61
10,62
11,61
11,62
13,61
13,62
14,61
14,62
16,61
16,62
17,61
17,62
19,61
19,62
20,61
20,62
22,61
22,62
23,61
23,62
 1,64
 1,65
 2,64
 2,65
 4,64
 4,65
 5,64
 5,65
 7,64
 7,65
 8,64
 8,65
10,64
10,65
11,64
11,65
13,64
13,65
14,64
14,65
16,64
16,65
17,64
17,65
19,64
19,65
20,64
20,65
22,64
22,65
23,64
23,65
 1,67
 1,68
 2,67
 2,68
 4,67
 4,68
 5,67
 5,68
 7,67
 7,68
 8,67
 8,68
10,67
10,68
11,67
11,68
13,67
13,68
14,67
14,68
16,67
16,68
17,67
17,68
19,67
19,68
20,67
20,68
22,67
22,68
23,67
23,68
 1,70
 1,71
 2,70
 2,71
 4,70
 4,71
 5,70
 5,71
 7,70
 7,71
 8,70
 8,71
10,70
10,71
11,70
11,71
13,70
13,71
14,70
14,71
16,70
16,71
17,70
17,71
19,70
19,71
20,70
20,71
22,70
22,71
23,70
23,71
 1,73
 1,74
 2,73
 2,74
 4,73
 4,74
 5,73
 5,74
 7,73
 7,74
 8,73
 8,74
10,73
10,74
11,73
11,74
13,73
13,74
14,73
14,74
16,73
16,74
17,73
17,74
19,73
19,74
20,73
20,74
22,73
22,74
23,73
23,74
 1,76
 1,77
 2,76
 2,77
 4,76
 4,77
 5,76
 5,77
 7,76
 7,77
 8,76
 8,77
10,76
10,77
11,76
11,77
13,76
13,77
14,76
14,77
16,76
16,77
17,76
17,77
19,76
19,77
20,76
20,77
22,76
22,77
23,76
23,77
 1,79
 1,80
 2,79
 2,80
 4,79
 4,80
 5,79
 5,80
 7,79
 7,80
 8,79
 8,80
10,79
10,80
11,79
11,80
13,79
13,80
14,79
14,80
16,79
16,80
17,79
17,80
19,79
19,80
20,79
20,80
22,79
22,80
23,79
23,80
$ type tumbler.dat
10,38
10,39
10,41
10,42
11,38
11,39
11,41
11,42
12,39
12,41
13,37
13,39
13,41
13,43
14,37
14,39
14,41
14,43
15,37
15,38
15,42
15,43
$ type toad.dat
11,39
11,40
11,41
12,38
12,39
12,40
$ type beacon.dat
10,40
10,41
11,40
11,41
12,38
12,39
13,38
13,39
$ type barber.dat
6,34
6,35
7,34
7,36
9,36
9,38
11,38
11,40
13,40
13,42
15,42
15,44
17,44
17,46
18,45
18,46

101.12borrrrre-ingggggCACHE::MARSHALLbeware the fractal dragonWed Sep 03 1986 11:1613
    RE .11:
    
    I don't mean to be rude, but isn't an 1100 line note a bit much?
    
    Maybe if you (everyone who has replied) actually "drew" these patterns,
    this note would be a little more interesting.
    
                                                   
                  /
                 (  ___
                  ) ///
                 /
    
101.13over 1000 generations before stabilityROXIE::OSMANand silos to fill before I feep, and silos to fill before I feepWed Sep 03 1986 18:0610
The simplest pattern that has the most complicated history is this:


	      *	*
		* *
                *

It's known as the "R pentomino".

/Eric
101.14 Hmm...EAGLEA::DANTOWITZDavid .. DTN: 226-6957Wed Sep 03 1986 18:1913
    RE .12:
    

	I had the information, so I entered the note.  I wasn't
	about to draw them all out (and perhaps make an error!)

	Boring or not it was the only form that I had the information
	in.  I apologize that you had to hit "next screen" that
	many times!

	I hope that someone was helped by the reply.

	David
101.15Kinda grows on you...JON::MORONEYMadmanWed Sep 03 1986 18:2410
The thing I described in .10 starts out as follows:

     ***
     * *
     * *

Don't know what it's called (if anything), but it grows for quite a while
before getting stable. 

-Mike
101.16It's called ""pi""GWEN::OSMANand silos to fill before I feep, and silos to fill before I feepThu Sep 04 1986 16:068
The name for the

	* * *
	*   *
	*   *           thingie is "PI".  (Because it looks like the Greek
			letter)

/Eric
101.17thankxECCLES::DOUGdoug dickinsonTue Sep 23 1986 17:327
    (this is fstvax::dickinson with a new node and username). 
    i'd like to thank those of you who entered patterns, no matter what
    form they were in. (after all, we're all programmers, right?  we
    can convert from one form to the other in seconds).
    
    							dd
    
101.18CorrectionEXIT26::STRATTONI (heart) my wifeFri Apr 21 1989 15:3012
        re .13 and
        
>      	      *	*
>		* *
>               *
>
>It's known as the "R pentomino".
      
        It's actually the "F pentomino".
        
Jim Stratton (just passing through)
        
101.19Rules of LifeIMTDEV::ROBERTSReason, Purpose, Self-esteemMon Mar 09 1992 16:287
    If anyone has the rules for "Life," I'd like to try playing with it on
    Lotus/1-2-3. Just for the heck of it.
    
    Thanks,
    
    Dwayne
    
101.20TURRIS::LANGUAGES 99.*ZFC::deramoColorado Rocky Mountain HighMon Mar 09 1992 17:033
Try the languages conference at TURRIS::LANGUAGES, topic 99.

Dan
101.21BEING::EDPAlways mount a scratch monkey.Tue Mar 10 1992 13:5523
    Re .19:
    
    Briefly, there is a rectangular board, so that each position has eight
    neighboring positions.  Ideally, the board extends indefinitely, but
    most implementations give it some finite limit.
    
    Initially, some living "cells" are placed in positions on the board. 
    Different starting patterns give different results.
    
    From the initial position, new generations evolve.  Each position in
    each new generation is computed from the previous generation:
    
    	If a position is empty (in the previous generation):
    		If there are three living cells in neighboring positions,
    			then a new cell comes to life in this position.
    		Otherwise, the position remains empty.
    	If a position contains a living cell:
    		If there are two or three neighboring living cells,
    			then the cell in this position remains alive.
    		Otherwise, the cell dies; the position becomes empty.
    
    
    				-- edp
101.22HANNAH::OSMANsee HANNAH::IGLOO$:[OSMAN]ERIC.VT240Fri Mar 13 1992 17:4020
edp wrote:
  
    	If a position is empty (in the previous generation):
    		If there are three living cells in neighboring positions,
    			then a new cell comes to life in this position.
    		Otherwise, the position remains empty.
    	If a position contains a living cell:
    		If there are two or three neighboring living cells,
    			then the cell in this position remains alive.
    		Otherwise, the cell dies; the position becomes empty.
    
    


It's important that you calculate both of the above without influence of the
other.  In other words, new cells coming to life don't affect the neighbor
count of existing cells, and dying cells don't affect the neighbor count
of empty cells.