BFOIT

Introduction
to Programming

Arrays

   The Game of Life   


Introduction

Arrays - indexed collections of data.

In this lesson, you will learn


The Game of Life

John Conway's Game of Life is an example of Cellular Automaton.

A cellular automaton is a collection of "colored" cells on a grid of
specified shape that evolves through a number of discrete time steps
according to a set of rules based on the states of neighboring cells.
The rules are then applied iteratively for as many time steps as
desired. (from http://mathworld.wolfram.com/CellularAutomaton.html).

The "Game of Life" is played on a grid.  The squares of the grid are called cells.  A cell that is alive is colored in.  The rules for Life are simple.  They are:

  1. In order for a cell to remain alive, it must have two or three neighbors.
  2. If a live cell has less than two neighbors, it dies (loneliness).
  3. If a live cell has more than three neighbors, it dies (over-crowdedness).
  4. If an empty cell has exactly two neighbors, it comes to life.

A cell's neighbors are the eight cells which surround it (to its north, northeast, east, etc...).

alt="Your browser understands the <APPLET> tag but isn't running the applet, for some reason." Your browser is completely ignoring the <APPLET> tag!
Game of Life Applet

Here is a Java applet.  Draw some patterns by clicking the left mouse button on squares to bring them to life.  Then click on the [Step] button to watch what happens as the rules are applied in one cycle of Life.



Summary


New TurtleTalk Procedures Used In This Lesson
Name Input Description Example
ARRAY size Outputs an array of size members, each of which is initially an empty sentence. Size must be a positive integer. MAKE "nums ARRAY 5
FLOOR number Outputs the largest integer (closest to positive infinity) that is not greater than number. FLOOR 12.875
SETITEM index
array
value
Replaces the indexth member of array with value. SETITEM 2 :nums "two  


Back to Table of Contents
Back to previous Lesson ( TurtleTalk Words as Data )
On to next Lesson ( What's Java? )