|
|
|
|
|
| (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) |