However, movement is complicated by the fact that a cell may be part of a multicellular organism (in which other cells are also trying to move, possibly in different directions). The organism must move as a whole, so what actually happens is that the issuing of a move instruction by a cell is actually a vote to move in a particular direction rather than an instruction that has immediate effect. At each time slice, an organism counts up all of the movement votes from its constituent cells, and decides how to move as follows:
A normalised total movement vector is calculated by summing all the individual votes of cells within the organism:
(4.1) |
A `multiple movement factor', M, is then calculated. This factor
determines the extent to which two or more cells moving in tandem
within an organism are more efficient than would be expected by simply
summing their individual movements. M is defined as:
M = (m-1)L+1 | (4.2) |
Movement is further complicated in the situation where the organism
is overlapping (or partially overlapping) another organism on the grid.
In this case, there is a `friction' term F which slows the
organism down as it attempts to move over other cells. This term is
defined as follows:
(4.3) |
The total movement that the organism attempts to make, ,
is
therefore specified by
(4.4) |
The organism moves from its current position by the distance and direction given by , unless it reaches the edge of the grid, in which case it stops at that point (if the grid boundary does not wrap).