![]() |
![]() |
![]() |
![]() |
(CA in SCARLET..) | Contents | Index | (..CA in SCARLET) |
The evolution of the population obeys the following rules:
Though these are very simple rules to model phenomenoms like the deadly
consequences of a too high or too low population density, or the birth of
new life under good conditions, the behaviour of such a system is
already so complex that it could hardly be overseen. One reason for that
surely is that the chosen rules are very balanced.
SIGMA life; DIMENSION 2; REGISTER INT state; NEIGHBOUR center : ( 0, 0); left : (-1, 0); right : ( 1, 0); upper : ( 0, 1); lower : ( 0,-1); left_upper : (-1, 1); right_upper : ( 1, 1); left_lower : (-1,-1); right_lower : ( 1,-1); VAR INT sum; BORDER {0}; TABLE sum = center.state + left.state + right.state + upper.state + lower.state + left_upper.state + right_upper.state + left_lower.state + right_lower.state; sum==3; : SELF={1}; : sum==4; : /* no statement */ : /* TRUE */ : SELF={0}; : |
The program given here can be recognized as a SDL program by the keyword SIGMA in the headline. It desribes what the local rule function will do to a single but arbitrary cell of the retina during one step of the simulation. The program consists of two parts: The first part reachs until TABLE and includes several declarations:
|
![]() |
The RDL program shown above describes an initial configuration that matches the SDL program Life. Again we find a subdivision into a declaration and a statement part:
By the way, the following strange-looking initial configuration answered
the question raised by Conway, if there exist populations whose size will
approach infinity in time, assuming that there is enough space.
(Hint: The solution is close connected with the first figure.)
|
![]() |
Source Code: | life.sdl |
glider.rdl | |
cannon.rdl |
![]() |
![]() |
![]() |
![]() |
(CA in SCARLET..) | Contents | Index | (..CA in SCARLET) |