Thus I make a Golly feature request here:
- Add support for .mcl files using an MCell "general binary" rule
- Convert them to MAP rules
- Reduce them to isotropic/totalistic rules if possible
Code: Select all
#MCell 4.00 #GAME General binary #RULE C0,NM,Sa6ba3bab3a3bab3ab7a3bab3ab7ab15a3bab3ab7ab15ab31a3bab3ab7 #RULE ab15ab31ab63a,B5ab3abb6abbab12abbab3ab24abbab3ab7ab49abab3ab7ab1 #RULE 5ab95a #BOARD 100x100 #SPEED 0 #WRAP 0 #CCOLORS 2 #D The rule is caled "Just Friends" because new cells are born from a pair #D of parents, but not from ones which are "too intimate" with each other. #D A cell stays alive only if it has 1 or 2 live neighbors (in any position). #D A cell is born only if it has exactly two live neighbors which are not #D adjacent vertically or horizontally. #D #D So in the following figure, the central cell is born if there are live #D cells at any two cells marked ac, ad, ae, af, ag, bd, be, bf, bg, bh, #D ce, cf, cg, ch, df, dg, dh, eg, eh, or fh. #D abc #D hid #D gfe #D #D The rule has two small period 6 diagonal gliders, an interesting period #D 236 cyclic oscillator, and a small c/3 orthogonal wickstretcher which #D show up from random soups. Lines of cells are stable. Random soups tend #D to quickly settle down into small clumps of lines. But there are lots of #D spaceships, wickstretchers, rakes, and glider guns which have been built. #D #D Here is a glider loop whose period is not a multiple of the turning #D oscillator's period! (Is this the first such reaction known in any #D Life-like rule?) Here are four gliders circulating with period 408. #D #D David I. Bell, June 2000 #L 20.7A$$23.A$23.A$$21.A3.A$$23.A13$51.A$48.A..A$47.A.A.A$46.A4.A$47.A.A #L .A$A47.A..A$A3.A36.A9.A$A5.A$A.A38.AA$A5.A$A3.A$A$$34.A$35.AA5$22.AA4. #L A$28.3A$22.A6$27.A.A$27.A.A$27.A.A$$25.7A
Since Golly supports Generations MAP rules and von Neumann neighbourhoods, we can handle all parameters.The notation of General binary rules has the "C/N/S/B" form, where:
C - specifies the count of states in the rule (0..C-1).
N - specifies the neighborhood type: NM stands for Moore, NN for von Neumann.
S - specifies the compressed string defining the configurations where a cell survives.
B - specifies the compressed string defining the configurations where a cell is born.
Strings defining S and B parts specify the 0/1 state for every possible configuration. For enumerating all possible neighborhood configurations the "N,NE,E,SE,S,SW,W,NW" order is used. For example S010000...0 means "Survival on an alive N neighbor", B1100...0 means "Birth on no neighbors or on a single N neighbor". To make the S/B strings shorter a simple compression is used. 0s are represented as "a", 1s as "b". 3 and more occurrences of the same character are shortened by specifying the count of occurrences and a character.
"Fallski" rule is defined as follows: "C48,NM,Sb255a,Babb189ab63a".
It has 48 states (0..47) and uses the Moore neighborhood. "Sb255a" means 1 and 255 0s (survival only on no alive neighbors). "Babb189ab63a" means 0,1,1, 189 0s, 1, 63 0s (birth on a single N or NE neighbor, or on W and NW neighbors).
The "LogicRule" in MCell, defined by its general binary rule string
Code: Select all