Implementation of totalistic cellular automata
To handle totalistic rules that involve k colors and nearest neighbors, one can add the definition
CAStep[TotalisticCARule[rule_List, 1], a_List] := rule〚-1 - (RotateLeft[a] + a + RotateRight[a])〛
to what was given on page 867. The following definition also handles the more general case of r neighbors:
CAStep[TotalisticCARule[rule_List, r_Integer], a_List] := rule〚-1 - Sum[RotateLeft[a, i], {i, -r, r}]〛
One can generate the representation of totalistic rules used by these functions from code numbers using
ToTotalisticCARule[num_Integer, k_Integer, r_Integer] :=
TotalisticCARule[IntegerDigits[num, k, 1 + (k - 1)(2r + 1)], r]