Extending Generations Rules

For discussion of other cellular automata.
bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Extending Generations Rules

Post by bprentice » February 24th, 2015, 12:42 pm

To provide some light relief from all of the deep searching that has occupied the forum recently consider the Generations rule /235/4. The rule has no obvious guns. Now consider extending this rule by adding period three oscillators. The design of this extension was introduced in this post:

viewtopic.php?f=11&t=1624#p16952

and discussed further in this thread:

viewtopic.php?f=11&t=1629

The definition of the extension to rule /235/4 is:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 7;
  final static int numOscillators = 3;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,1,0,1,0,0,0},
      {2,2,2,2,2,2,2,2,2},
      {3,3,3,3,3,3,3,3,3},
      {0,0,0,0,0,0,0,0,0},
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 0; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if (t == 1)
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
When inserted into RuleTreeGen.java, compiled and run this Golly rule tree is produced:

Code: Select all

@RULE _235_4_O3
@TREE
num_states=7
num_neighbors=8
num_nodes=34
1 0 2 3 0 5 6 4
2 0 0 0 0 0 0 0
1 1 2 3 0 5 6 4
2 0 2 0 0 2 0 0
3 1 3 1 1 3 1 1
2 2 2 2 2 2 2 2
3 3 5 3 3 5 3 3
4 4 6 4 4 6 4 4
2 2 0 2 2 0 2 2
3 5 8 5 5 8 5 5
4 6 9 6 6 9 6 6
5 7 10 7 7 10 7 7
3 8 3 8 8 3 8 8
4 9 12 9 9 12 9 9
5 10 13 10 10 13 10 10
6 11 14 11 11 14 11 11
3 3 8 3 3 8 3 3
4 12 16 12 12 16 12 12
5 13 17 13 13 17 13 13
6 14 18 14 14 18 14 14
7 15 19 15 15 19 15 15
3 8 1 8 8 1 8 8
4 16 21 16 16 21 16 16
5 17 22 17 17 22 17 17
6 18 23 18 18 23 18 18
7 19 24 19 19 24 19 19
8 20 25 20 20 25 20 20
3 1 1 1 1 1 1 1
4 21 27 21 21 27 21 21
5 22 28 22 22 28 22 22
6 23 29 23 23 29 23 23
7 24 30 24 24 30 24 24
8 25 31 25 25 31 25 25
9 26 32 26 26 32 26 26
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
This extended rule provides a rich assortment of guns. Some examples are:

Code: Select all

x = 3, y = 3, rule = _235_4_O3
.ED$.F$F!

Code: Select all

x = 3, y = 35, rule = _235_4_O3
D.D$.F$.F$D.D11$D.D$.F2$.F$D.D11$D.D$.F3$.F$D.D!

Code: Select all

x = 5, y = 6, rule = _235_4_O3
2.D.D$3.F3$.F$D.D!

Code: Select all

x = 33, y = 33, rule = _235_4_O3
5.ABC.ABC5.ABC.ABC5.AB.F$3.ABC.ABC.ABC.ABC.ABC.ABC.ABC.F$3.ABC.ABC.
ABC.ABC.ABC.ABC.ABCDE$.3A.ABC.ABC.ABC.ABC.ABC.ABC.ABC$.2B8.ABC9.ABC
$A2CA$B2.B$C2AC$.2B$A2CA$B2.B$C2ACA$.2B.B$.2CAC$3.B$.2AC$.2B$A2CA$B
2.B$C2AC$.2B$A2CA$B2.B$C2ACA$.2B.B$.2CAC$3.B$.2AC$.2B$A2CA$B.DB$.FE
C$F!

Code: Select all

x = 14, y = 14, rule = _235_4_O3
11.ABF$11.EFB$10.ADCA$11.2B$10.C2AC$10.B2.B$10.A2CA$11.2B$11.2A2$2.
A.CBA$AEDBA.CBA$BFCBA.CBA$FBA.CBA!

Code: Select all

x = 24, y = 18, rule = _235_4_O3
E.C16.E.C$.EDB16.EDB$ACFA15.ACFA$.2B17.2B$.2AC16.2AC$3.B18.B$.2CAC15.
2CAC$.2B.B15.2B.B$C2ACA14.C2ACA$B2.B15.B2.B$A2CA15.A2CA$.2B17.2B$C2A
C15.C2AC$B2.B15.B2.B$A2CA15.A2CA$.2B17.2B$.2A17.2A$.D19.D!
Brian Prentice
Last edited by bprentice on February 24th, 2015, 1:48 pm, edited 2 times in total.

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » February 24th, 2015, 12:59 pm

Some more guns using a different design:

Code: Select all

x = 38, y = 38, rule = _235_4_O3
22.D6$16.CBA5.D$8.D9.CBA$18.CBA9.D5$6.D2$D$31.C$7.2A22.B$7.2B20.2CA
$6.A2C20.2B$6.B22.2A$6.C$37.D2$31.D5$7.D9.ABC$17.ABC9.D$13.D5.ABC6$
15.D!

Code: Select all

x = 26, y = 26, rule = _235_4_O3
10.CBA5.D$2.D9.CBA$12.CBA9.D5$D3$25.C$.2A22.B$.2B20.2CA$A2C20.2B$B22.
2A$C3$25.D5$.D9.ABC$11.ABC9.D$7.D5.ABC!

Code: Select all

x = 40, y = 40, rule = _235_4_O3
25.D7$17.CBA5.D$9.D9.CBA$19.CBA9.D5$D6.D3$32.C$8.2A22.B$8.2B20.2CA$
7.A2C20.2B$7.B22.2A$7.C3$32.D6.D5$8.D9.ABC$18.ABC9.D$14.D5.ABC7$14.
D!

Code: Select all

x = 31, y = 25, rule = _235_4_O3
29.ED$.D$23.D5$24.C$24.B$22.2CA$22.2B$22.2A5$30.D2$24.D5$D$22.D!

Code: Select all

x = 26, y = 50, rule = _235_4_O3
.D$23.D14$24.C$24.B$22.2CA$22.2B$22.2A3$D$22.D$6.D6$8.D16.E$25.D18$
25.F!
Brian Prentice

User avatar
Freywa
Posts: 877
Joined: June 23rd, 2011, 3:20 am
Location: Singapore
Contact:

Re: Extending Generations Rules

Post by Freywa » February 24th, 2015, 5:31 pm

One question. Can you do logic with this? For that matter, can you make an equivalent to the Wireworld computer in Star Wars (345/2/4)? I've tried some times but to no significant success.
Princess of Science, Parcly Taxel

Code: Select all

x = 31, y = 5, rule = B2-a/S12
3bo23bo$2obo4bo13bo4bob2o$3bo4bo13bo4bo$2bo4bobo11bobo4bo$2bo25bo!

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » February 24th, 2015, 7:35 pm

Freywa wrote:Can you do logic with this?
I will leave others who are more knowledgeable to answer this question. With my posts in Caterpillars, Snake Rule Extension and here I was simply showing by example how a Generations rule that has no obvious guns can be transformed to one which has a rich assortment of guns.

Two more guns:

Code: Select all

x = 16, y = 55, rule = _235_4_O3
.AB$.FEF$.BADB$2A2CDAC$.BADB$.FEF$.AB9$3.A$AFBABFA$BEACAEB$.FDCDF$2.
BDB$3.A$3.C4$5.D6$3.D7$3.A$AFBABFA$BEACAEB$.FDCDF$2.BDB$3.A$3.C3$15.
E$5.D2$13.E4$3.D!

Code: Select all

x = 80, y = 103, rule = _235_4_O3
11.ABC9.ABC9.ABC$5.ABC.ABC.ABC.ABC.ABC.ABC.ABC.ABC.ABC.ABC.A$3.ABC.
ABC.ABC.ABC.ABC.ABC.ABC.ABC.ABC.ABC.ABCBA$2.BC3.ABC3.ABC3.ABC3.ABC3.
ABC3.ABC3.ABCDCB$.FAC3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC2.C$2.BC3.A
BC3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC2$46.2A$46.2BA$5.ABC3.ABC3.ABC3.ABC
3.ABC3.ABC3.ABCD.2CB$2.F2.ABC3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC4.C$5.AB
C3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC2$44.4A$44.4BA$3.ABC3.ABC3.ABC3.ABC3.
ABC3.ABC3.ABCD.4CB$.F.ABC3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC6.C$3.ABC3.A
BC3.ABC3.ABC3.ABC3.ABC3.ABC2$42.6A$42.6BA$2.BC3.ABC3.ABC3.ABC3.ABC3.
ABC3.ABCD.6CB$.AFC3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC8.C$2.BC3.ABC3.ABC3.
ABC3.ABC3.ABC3.ABC2$40.8A$40.8BA$5.ABC3.ABC3.ABC3.ABC3.ABC3.ABCD.8C
B$2.F2.ABC3.ABC3.ABC3.ABC3.ABC3.ABC10.C$5.ABC3.ABC3.ABC3.ABC3.ABC3.
ABC2$38.10A$38.10BA$3.ABC3.ABC3.ABC3.ABC3.ABC3.ABCD.10CB$.F.ABC3.AB
C3.ABC3.ABC3.ABC3.ABC12.C$3.ABC3.ABC3.ABC3.ABC3.ABC3.ABC2$36.12A$36.
12BA$2.BC3.ABC3.ABC3.ABC3.ABC3.ABCD.12CB$.AFC3.ABC3.ABC3.ABC3.ABC3.
ABC14.C$2.BC3.ABC3.ABC3.ABC3.ABC3.ABC2$34.14A$34.14BA$.B3.ABC3.ABC3.
ABC3.ABC3.ABCD.14CB$ACF2.ABC3.ABC3.ABC3.ABC3.ABC16.C$.B$3.C$31.AE14A
EA$30.AEAEA10BAEAEA$30.EA.AE10FEA.AE$30.AEAEA10BAEAEA$31.AE14AEA$76.
C$78.B$31.C16.CBA3.CBA3.CBA3.CBA3.CBA2.FCA$31.B14C.DCBA3.CBA3.CBA3.
CBA3.CBA3.B$31.A14B$32.14A2$46.CBA3.CBA3.CBA3.CBA3.CBA$31.C14.CBA3.
CBA3.CBA3.CBA3.CBA$31.B12C.DCBA3.CBA3.CBA3.CBA3.CBA$31.A12B$32.12A2$
44.CBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.C12.CBA3.CBA3.CBA3.CBA3.CBA3.CBA
$31.B10C.DCBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.A10B$32.10A2$42.CBA3.CBA3.
CBA3.CBA3.CBA3.CBA$31.C10.CBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.B8C.DCBA3.
CBA3.CBA3.CBA3.CBA3.CBA$31.A8B$32.8A2$40.CBA3.CBA3.CBA3.CBA3.CBA3.C
BA$31.C8.CBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.B6C.DCBA3.CBA3.CBA3.CBA3.C
BA3.CBA$31.A6B$32.6A2$38.CBA3.CBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.C6.CB
A3.CBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.B4C.DCBA3.CBA3.CBA3.CBA3.CBA3.CB
A3.CBA$31.A4B$32.4A2$36.CBA3.CBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.C4.CBA
3.CBA3.CBA3.CBA3.CBA3.CBA3.CBA$31.B2C.DCBA3.CBA3.CBA3.CBA3.CBA3.CBA
3.CBA$31.A2B$32.2A2$34.CBA3.CBA3.CBA3.CBA3.CBA3.CBA3.CBA3.CB$31.C2.
CBA3.CBA3.CBA3.CBA3.CBA3.CBA3.CBA3.CAF$31.BCDCBA3.CBA3.CBA3.CBA3.CB
A3.CBA3.CBA3.CB$32.ABCBA.CBA.CBA.CBA.CBA.CBA.CBA.CBA.CBA.CBA.CBA$34.
A.CBA.CBA.CBA.CBA.CBA.CBA.CBA.CBA.CBA.CBA$42.CBA9.CBA9.CBA!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » February 27th, 2015, 5:49 am

Generations rule 0/245/5 extended by adding period 4 oscillators.

The rule definition:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 9;
  final static int numOscillators = 4;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,0,1,1,0,0,0},
      {1,2,2,2,2,2,2,2,2},
      {3,3,3,3,3,3,3,3,3},
      {4,4,4,4,4,4,4,4,4},
      {0,0,0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 0; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if (t == 1)
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
The Golly rule tree:

Code: Select all

@RULE 0_245_5_O4
@TREE
num_states=9
num_neighbors=8
num_nodes=36
1 0 1 3 4 0 6 7 8 5
1 0 2 3 4 0 6 7 8 5
2 0 1 0 0 0 1 0 0 0
1 1 2 3 4 0 6 7 8 5
2 1 3 1 1 1 3 1 1 1
3 2 4 2 2 2 4 2 2 2
2 3 1 3 3 3 1 3 3 3
3 4 6 4 4 4 6 4 4 4
4 5 7 5 5 5 7 5 5 5
3 6 4 6 6 6 4 6 6 6
4 7 9 7 7 7 9 7 7 7
5 8 10 8 8 8 10 8 8 8
2 3 3 3 3 3 3 3 3 3
3 4 12 4 4 4 12 4 4 4
4 9 13 9 9 9 13 9 9 9
5 10 14 10 10 10 14 10 10 10
6 11 15 11 11 11 15 11 11 11
3 12 6 12 12 12 6 12 12 12
4 13 17 13 13 13 17 13 13 13
5 14 18 14 14 14 18 14 14 14
6 15 19 15 15 15 19 15 15 15
7 16 20 16 16 16 20 16 16 16
2 1 1 1 1 1 1 1 1 1
3 6 22 6 6 6 22 6 6 6
4 17 23 17 17 17 23 17 17 17
5 18 24 18 18 18 24 18 18 18
6 19 25 19 19 19 25 19 19 19
7 20 26 20 20 20 26 20 20 20
8 21 27 21 21 21 27 21 21 21
3 22 22 22 22 22 22 22 22 22
4 23 29 23 23 23 29 23 23 23
5 24 30 24 24 24 30 24 24 24
6 25 31 25 25 25 31 25 25 25
7 26 32 26 26 26 32 26 26 26
8 27 33 27 27 27 33 27 27 27
9 28 34 28 28 28 34 28 28 28
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
 7  92  36 110
 8   0  99 140
Some example guns:

Code: Select all

x = 7, y = 26, rule = 0_245_5_O4
AD$D$6.H$6.H3$.3D$2.D17$6.H$6.H!

Code: Select all

x = 8, y = 33, rule = 0_245_5_O4
4.E$E2.2E$F2.E8$4.E$3.2E$3.E9$E2.EDCBA$F2.EDCBA9$3.EDCBA$3.EDCBA!

Code: Select all

x = 4, y = 4, rule = 0_245_5_O4
3.E$3.E2$2E!

Code: Select all

x = 6, y = 38, rule = 0_245_5_O4
F2.E$E2.2A$3.2BA$3.2CB$3.2DC$4.DE9$3.E$3.2A$3.2BA$3.2CB$3.2DC$4.DE9$
3.E$3.2A$3.2BA$3.2CB$3.2DC$5.D4$5.E!

Code: Select all

x = 3, y = 1, rule = 0_245_5_O4
3F!

Code: Select all

x = 10, y = 57, rule = 0_245_5_O4
4.FG3$.A3.F$2A$F2$2D$2C$2B$2A2$2A$2B$2C$2D2$F$2A$.A3.F3$4.FG12$8.FG
3$.A7.F$2A$F2$2D$2C$2B$2A2$2A$2B$2C$2D2$F$2A$.A7.F3$8.FG!

Code: Select all

x = 20, y = 20, rule = 0_245_5_O4
2.ABCD4.ABCD.F$2.ABCD4.ABCD.2F.DF$3A13.F.DG$2B$2C$2D3.A4$14.GF$2A$2B
$2C$2D2$2F$.2F2$.2D$.FG!

Code: Select all

x = 20, y = 33, rule = 0_245_5_O4
4.EDCBA4.DCBA$ECD2EDCBA4.DCBA$FCDE$18.2A$18.2B$14.A3.2C$18.2D5$18.2A
$18.2B$18.2C$10.F7.2D$10.E7.2E$17.2E$17.2D$17.2C$17.FE13$2.G!

Code: Select all

x = 4, y = 22, rule = 0_245_5_O4
3.E$3.E2$2E18$E!

Code: Select all

x = 18, y = 3, rule = 0_245_5_O4
9.G6.G$H7.2G7.H$.G6.G!

Code: Select all

x = 6, y = 21, rule = 0_245_5_O4
H4.H$2.2A$2.2B$.A2CA$AB2DBA$BC2.CB$CD2.DC$D4.D2$2.2A$2.2F$2.2A2$D4.
D$CD2.DC$BC2.CB$AB2DBA$.A2CA$2.2B$2.2A$H4.H!

Code: Select all

x = 3, y = 3, rule = 0_245_5_O4
.DE$2DE$2E!

Code: Select all

x = 6, y = 4, rule = 0_245_5_O4
3.2A$2.A2B$ABCHEH$ABCD!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » February 27th, 2015, 6:08 am

A few more examples. First some arrow like patterns created by firing a gun at a slow ship:

Code: Select all

x = 29, y = 20, rule = 0_245_5_O4
9.ABCD2.G$9.ABCD2.2G2.G$16.G2.H6$13.D$2A10.A.HG$2B11.D$2C$2D$23.D2.
DBA$17.DCBA.3D.ADB$2G15.DCBA2.D2.DBA$.2G13.DCBA3$.GH!

Code: Select all

x = 29, y = 20, rule = 0_245_5_O4
9.ABCD2.G$9.ABCD2.2G2.G$16.G2.H6$13.D$2A10.A.HG$2B11.D$2C$2D21.D2.D
BA$22.3D.ADB$17.DCBA2.D2.DBA$2G15.DCBA$.2G13.DCBA3$.GH!

Code: Select all

x = 16, y = 4, rule = 0_245_5_O4
10.D2.DBA$9.3D.ADB$E2.EDCBA2.D2.DBA$F2.EDCBA!
next a sawtooth:

Code: Select all

x = 17, y = 13, rule = 0_245_5_O4
EHGF8$14.DBA$13.A.DB$14.DBA$GABG2.DCBA$HABG2.DCBA!
and finally this:

Code: Select all

x = 4, y = 3, rule = 0_245_5_O4
.E$A.2H$.E!
What are these called?

Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » February 28th, 2015, 5:47 pm

The same generations rule 0/245/5 extended by adding period 3 oscillators produces a different set of guns.

The rule definition:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 8;
  final static int numOscillators = 3;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,0,1,1,0,0,0},
      {1,2,2,2,2,2,2,2,2},
      {3,3,3,3,3,3,3,3,3},
      {4,4,4,4,4,4,4,4,4},
      {0,0,0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 0; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if (t == 1)
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
and the Golly rule tree:

Code: Select all

@RULE 0_245_5_O3
@TREE
num_states=8
num_neighbors=8
num_nodes=36
1 0 1 3 4 0 6 7 5
1 0 2 3 4 0 6 7 5
2 0 1 0 0 0 1 0 0
1 1 2 3 4 0 6 7 5
2 1 3 1 1 1 3 1 1
3 2 4 2 2 2 4 2 2
2 3 1 3 3 3 1 3 3
3 4 6 4 4 4 6 4 4
4 5 7 5 5 5 7 5 5
3 6 4 6 6 6 4 6 6
4 7 9 7 7 7 9 7 7
5 8 10 8 8 8 10 8 8
2 3 3 3 3 3 3 3 3
3 4 12 4 4 4 12 4 4
4 9 13 9 9 9 13 9 9
5 10 14 10 10 10 14 10 10
6 11 15 11 11 11 15 11 11
3 12 6 12 12 12 6 12 12
4 13 17 13 13 13 17 13 13
5 14 18 14 14 14 18 14 14
6 15 19 15 15 15 19 15 15
7 16 20 16 16 16 20 16 16
2 1 1 1 1 1 1 1 1
3 6 22 6 6 6 22 6 6
4 17 23 17 17 17 23 17 17
5 18 24 18 18 18 24 18 18
6 19 25 19 19 19 25 19 19
7 20 26 20 20 20 26 20 20
8 21 27 21 21 21 27 21 21
3 22 22 22 22 22 22 22 22
4 23 29 23 23 23 29 23 23
5 24 30 24 24 24 30 24 24
6 25 31 25 25 25 31 25 25
7 26 32 26 26 26 32 26 26
8 27 33 27 27 27 33 27 27
9 28 34 28 28 28 34 28 28
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
 7  92  36 110
Some example guns:

Code: Select all

x = 8, y = 30, rule = 0_245_5_O3
5.E$F3.2E$4.E7$5.E$4.2E$4.E8$F3.ECBA$4.ECBA8$.ABCE$.ABCE!

Code: Select all

x = 3, y = 4, rule = 0_245_5_O3
A$2E$.2E$.A!

Code: Select all

x = 5, y = 8, rule = 0_245_5_O3
EF3$.2E$2.2E3$3.FE!

Code: Select all

x = 6, y = 31, rule = 0_245_5_O3
3.E$4.A$2.2D2$2.2G$2.2B$2.2A4$5.E10$3.E$4.A$2.2D2$2.2G$2.2B$2.2A4$E
4.E!

Code: Select all

x = 2, y = 2, rule = 0_245_5_O3
AE$.E!

Code: Select all

x = 8, y = 5, rule = 0_245_5_O3
7.F$4.E2.E$3.2E$E2.E$F!

Code: Select all

x = 6, y = 10, rule = 0_245_5_O3
GFEGFE8$2.2E$2.A!

Code: Select all

x = 5, y = 10, rule = 0_245_5_O3
GFEGF8$2.2E$2.A!

Code: Select all

x = 3, y = 10, rule = 0_245_5_O3
EGF8$2E$A!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » February 28th, 2015, 5:56 pm

Some more guns:

Code: Select all

x = 26, y = 6, rule = 0_245_5_O3
E24.E$F24.F$G.ABCD2.ABCD2.ECBA2.DCBA.G$E.ABCD2.ABCD2.ECBA2.DCBA.E$F
24.F$G24.G!

Code: Select all

x = 37, y = 4, rule = 0_245_5_O3
E.ABCD8.ABCD3.A$2.ABCD8.ABCD2.2E8.DCBA$3.ABCD8.ABC2D.2E8.DCBA$19.D2.
A8.DCBA.E!

Code: Select all

x = 17, y = 8, rule = 0_245_5_O3
G6.F3$7.2E$8.2E3$9.F6.G!

Code: Select all

x = 9, y = 27, rule = 0_245_5_O3
5.F$FD$D$5.2A$5.BF2A$6.2FB$7.F3$6.2D$6.2C$6.2B$6.2A2$6.2A$6.2B$6.2C
$6.2D3$7.F$6.2FB$5.BF2A$5.2A$D$FD$5.F!

Code: Select all

x = 30, y = 34, rule = 0_245_5_O3
10.ABCD$9.ABCD13.G$F8.ABCD26$29.F$3.G3$17.F$27.E!

Code: Select all

x = 32, y = 30, rule = 0_245_5_O3
12.ABCD11.E$12.ABCD$31.F$F23$28.F3$.E!

Code: Select all

x = 71, y = 30, rule = 0_245_5_O3
27.G15.G2$31.E7.E$E69.E8$27.2A13.2A$27.2BA11.A2B$27.2CB11.B2C$27.2D
C11.C2D$29.D11.D11$28.E13.E3$.G67.G!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 2nd, 2015, 3:29 pm

Generations rule 58/27/4 extended by adding period 3 oscillators.

The rule definition:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 7;
  final static int numOscillators = 3;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,0,0,0,0,1,0},
      {2,2,2,2,2,1,2,2,1},
      {3,3,3,3,3,3,3,3,3},
      {0,0,0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 0; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if (t == 1)
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
The Golly rule tree:

Code: Select all

@RULE 58_27_4_O3
@TREE
num_states=7
num_neighbors=8
num_nodes=37
1 0 2 3 0 5 6 4
2 0 0 0 0 0 0 0
1 1 2 3 0 5 6 4
2 0 2 0 0 2 0 0
3 1 3 1 1 3 1 1
2 2 0 2 2 0 2 2
3 3 5 3 3 5 3 3
4 4 6 4 4 6 4 4
3 5 1 5 5 1 5 5
4 6 8 6 6 8 6 6
5 7 9 7 7 9 7 7
1 0 1 3 0 5 6 4
2 0 11 0 0 11 0 0
3 1 12 1 1 12 1 1
4 8 13 8 8 13 8 8
5 9 14 9 9 14 9 9
6 10 15 10 10 15 10 10
2 11 0 11 11 0 11 11
3 12 17 12 12 17 12 12
4 13 18 13 13 18 13 13
5 14 19 14 14 19 14 14
6 15 20 15 15 20 15 15
7 16 21 16 16 21 16 16
3 17 3 17 17 3 17 17
4 18 23 18 18 23 18 18
5 19 24 19 19 24 19 19
6 20 25 20 20 25 20 20
7 21 26 21 21 26 21 21
8 22 27 22 22 27 22 22
2 2 11 2 2 11 2 2
3 3 29 3 3 29 3 3
4 23 30 23 23 30 23 23
5 24 31 24 24 31 24 24
6 25 32 25 25 32 25 25
7 26 33 26 26 33 26 26
8 27 34 27 27 34 27 27
9 28 35 28 28 35 28 28
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
A small sample of the many guns that can be constructed:

Code: Select all

x = 32, y = 33, rule = 58_27_4_O3
2.E$3E13$2.E$3E3$11.E$16.E$21.E$26.E$31.E6$2.E$3E3$12.E!

Code: Select all

x = 56, y = 68, rule = 58_27_4_O3
27.E2$3.F11.CBA$E14.CBA10.F10$2.2A$2.2B$2.2C23.2C$27.2B$27.2A10$2.F
10.ABC14.E$13.ABC11.F2$3.E11$28.F11.CBA$40.CBA10.F24$27.F27.E$52.F!

Code: Select all

x = 2, y = 39, rule = 58_27_4_O3
E19$2D19$.E!

Code: Select all

x = 4, y = 39, rule = 58_27_4_O3
E19$.2D19$3.E!

Code: Select all

x = 6, y = 39, rule = 58_27_4_O3
E19$2.2D19$5.E!

Code: Select all

x = 3, y = 30, rule = 58_27_4_O3
2.E$2.E$.E$2E$2.E$2.E9$.E$2E$2.E$2.E10$.E$3E$2.E!

Code: Select all

x = 3, y = 3, rule = 58_27_4_O3
2.E$.2E$2E!

Code: Select all

x = 31, y = 22, rule = 58_27_4_O3
E29.E8$15.E$15.E3$15.E$15.E8$E29.E!

Code: Select all

x = 31, y = 20, rule = 58_27_4_O3
E29.E7$15.E$15.E3$15.E$15.E7$E29.E!

Code: Select all

x = 31, y = 18, rule = 58_27_4_O3
E29.E6$15.E$15.E3$15.E$15.E6$E29.E!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 4th, 2015, 1:48 pm

Consider the hexagonal rule 0/24/4H extended by adding period 3 oscillators.

The rule definition is:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 7;
  final static int numOscillators = 3;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,0,1,0,0},
      {1,2,2,2,2,2,2},
      {3,3,3,3,3,3,3},
      {0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 1; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if ((t == 1) && (i != 3))
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
and the corresponding Golly rule tree is:

Code: Select all

@RULE 0_24_4H_O3
@TREE
num_states=7
num_neighbors=8
num_nodes=25
1 0 1 3 0 5 6 4
1 0 2 3 0 5 6 4
2 0 1 0 0 1 0 0
1 1 2 3 0 5 6 4
2 1 3 1 1 3 1 1
3 2 4 2 2 4 2 2
2 3 1 3 3 1 3 3
3 4 6 4 4 6 4 4
4 5 7 5 5 7 5 5
3 6 4 6 6 4 6 6
4 7 9 7 7 9 7 7
5 8 10 8 8 10 8 8
6 11 11 11 11 11 11 11
4 9 7 9 9 7 9 9
5 10 13 10 10 13 10 10
6 14 14 14 14 14 14 14
7 12 15 12 12 15 12 12
2 1 1 1 1 1 1 1
3 6 17 6 6 17 6 6
4 7 18 7 7 18 7 7
5 13 19 13 13 19 13 13
6 20 20 20 20 20 20 20
7 15 21 15 15 21 15 15
8 16 22 16 16 22 16 16
9 23 23 23 23 23 23 23
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
Some example patterns:

Code: Select all

x = 2, y = 1, rule = 0_24_4H_O3
2D!

Code: Select all

x = 19, y = 31, rule = 0_24_4H_O3
15.A$12.A2$14.DC3A$15.F$14.AD$14.F$12.DC3A2$8.A$10.A10$5.A3$4.DC3A$5.
F$4.AD$4.F$2.DC3A3$A!

Code: Select all

x = 13, y = 9, rule = 0_24_4H_O3
4.A.C$5.C$4.C2.DFBA.A$6.D2.BA$4.CF3.B$5.D2.BA$2.C2.DFBA.A$2.C$A.C!

Code: Select all

x = 4, y = 3, rule = 0_24_4H_O3
2.ED2$FE!

Code: Select all

x = 3, y = 3, rule = 0_24_4H_O3
.EA$A.E$EA!

Code: Select all

x = 8, y = 13, rule = 0_24_4H_O3
6.BA$6.B$5.BA7$2.BA$2.B$.CA$CA!
It is instructive to observe the evolution of simple patterns like this one:

Code: Select all

x = 3, y = 2, rule = 0_24_4H_O3
FD$.DF!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 4th, 2015, 2:36 pm

A nice gun:

Code: Select all

x = 7, y = 7, rule = 0_24_4H_O3
3.4D$2.D3.D$.D4.D$D5.D$D4.D$D3.D$4D!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 4th, 2015, 9:26 pm

Five more guns:

Code: Select all

x = 8, y = 15, rule = 0_24_4H_O3
7.A4$3.A3.A2$4.A$3.2D$3.A2$A3.A4$A!

Code: Select all

x = 30, y = 15, rule = 0_24_4H_O3
17.A4$3.E9.CBABC11.E$12.AC2BCA$5.AC6.CAC6.CA$4.AC6.C2EC6.CA$4.AC6.CAC
6.CA$10.AC2BCA$E9.CBABC11.E4$10.A!

Code: Select all

x = 24, y = 7, rule = 0_24_4H_O3
8.D2$.D21.D$.D21.D$D21.D2$5.D!

Code: Select all

x = 23, y = 23, rule = 0_24_4H_O3
11.2D$10.D.2D$10.D2.2D$9.D4.2D$9.D5.2D$8.D7.2D$8.D8.2D$7.D10.2D$7.D
11.2D$6.D13.2D$6.D14.2D$5.D16.D$5.D14.2D$4.D13.2D$4.D11.2D$3.D10.2D$
3.D8.2D$2.D7.2D$2.D5.2D$.D4.2D$.D2.2D$D.2D$2D!

Code: Select all

x = 8, y = 8, rule = 0_24_4H_O3
4.2D$3.DBD$2.4B2D$.DBA.2BD$D2B.ABD$2D4B$2.DBD$2.2D!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 4th, 2015, 9:45 pm

Two more:

Code: Select all

x = 21, y = 21, rule = 0_24_4H_O3
6.E13.E3$E3$17.E8$5.B$4.A2B$5.A$E3$3.E!

Code: Select all

x = 61, y = 61, rule = 0_24_4H_O3
30.E29.E2$47.AB$47.B6.E$46.AB2$27.E10$30.E13.E11$57.E3$E15.E27.E15.E
3$3.E11$16.E13.E10$33.E3$6.E3$E29.E!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 6th, 2015, 10:38 am

Another hexagonal generations rule, 2/235/4H, extended by adding period 3 oscillators.

The rule definition:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 7;
  final static int numOscillators = 3;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,1,0,1,0},
      {2,2,1,2,2,2,2},
      {3,3,3,3,3,3,3},
      {0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 1; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if ((t == 1) && (i != 3))
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
and the Golly rule tree:

Code: Select all

@RULE 2_235_4H_O3
@TREE
num_states=7
num_neighbors=8
num_nodes=27
1 0 2 3 0 5 6 4
2 0 0 0 0 0 0 0
1 1 1 3 0 5 6 4
2 0 2 0 0 2 0 0
3 1 3 1 1 3 1 1
1 1 2 3 0 5 6 4
2 2 5 2 2 5 2 2
3 3 6 3 3 6 3 3
4 4 7 4 4 7 4 4
2 5 0 5 5 0 5 5
3 6 9 6 6 9 6 6
4 7 10 7 7 10 7 7
5 8 11 8 8 11 8 8
6 12 12 12 12 12 12 12
2 0 5 0 0 5 0 0
3 9 14 9 9 14 9 9
4 10 15 10 10 15 10 10
5 11 16 11 11 16 11 11
6 17 17 17 17 17 17 17
7 13 18 13 13 18 13 13
3 14 9 14 14 9 14 14
4 15 20 15 15 20 15 15
5 16 21 16 16 21 16 16
6 22 22 22 22 22 22 22
7 18 23 18 18 23 18 18
8 19 24 19 19 24 19 19
9 25 25 25 25 25 25 25
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
An assortment of guns:

Code: Select all

x = 28, y = 52, rule = 2_235_4H_O3
27.D$26.D$25.D$24.D20$16.D$15.D$14.D$13.D$12.D17$7.D$6.D$5.D$4.D$3.D$
2.D$.D$D!

Code: Select all

x = 28, y = 53, rule = 2_235_4H_O3
27.D$27.D$26.D$25.D$24.D19$16.D$16.D$15.D$14.D$13.D$12.D16$7.D$7.D$6.
D$5.D$4.D$3.D$2.D$.D$D!

Code: Select all

x = 29, y = 53, rule = 2_235_4H_O3
28.D$28.D$27.D$26.D$24.2D19$17.D$17.D$16.D$15.D$14.D$12.2D16$8.D$8.D$
7.D$6.D$5.D$4.D$3.D$2.D$2D!

Code: Select all

x = 6, y = 7, rule = 2_235_4H_O3
3.D$4.D$2.D$5.D$.D$2.D$D!

Code: Select all

x = 11, y = 11, rule = 2_235_4H_O3
6.4D$4.D5.D$3.D6.D$2.D7.D$.D8.D2$D8.D$D7.D$D6.D$D5.D$.4D!

Code: Select all

x = 6, y = 6, rule = 2_235_4H_O3
3.D.D$2.D2.D$.D3.D$D4.D2$4D!

Code: Select all

x = 15, y = 10, rule = 2_235_4H_O3
2.A$.2B$A2C.AE$BC.AEA$C.AEA$.2EA$.A3$14.D!

Code: Select all

x = 32, y = 32, rule = 2_235_4H_O3
31.E5$23.E4$23.2A$22.BAB$22.2C$22.B2$D3$5.D6$17.F8$14.F!

Code: Select all

x = 92, y = 92, rule = 2_235_4H_O3
91.D5$83.D14$80.E5$72.E14$69.F5$61.F6$48.BCB$47.2AC$47.AB$38.E3$43.E
5$19.D$55.D2$24.D5$F$52.D2$5.F$63.F8$60.F3$71.E8$68.E!

Code: Select all

x = 38, y = 38, rule = 2_235_4H_O3
23.F4$26.BCB$26.C2A3.E$26.BA7$29.E5$13.D5$5.D31.D6$18.F3$23.F5$E!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 7th, 2015, 6:30 am

Four more guns:

Code: Select all

x = 13, y = 13, rule = 2_235_4H_O3
12.D$12.D$11.D$10.D$9.D$8.D$7.D$6.D$5.D$4.D$3.D$2.D$2D!

Code: Select all

x = 14, y = 25, rule = 2_235_4H_O3
12.2D$11.D.D$10.D2.D$9.D3.D$8.D4.D$7.D5.D$6.D6.D$5.D7.D$4.D8.D$3.D9.D
$2.D10.D$.D11.D$.D10.D$D11.D$D10.D$D9.D$D8.D$D7.D$D6.D$D5.D$D4.D$D3.D
$D2.D$D.D$2D!

Code: Select all

x = 14, y = 27, rule = 2_235_4H_O3
13.E$12.2D$11.D.D$10.D2.D$9.D3.D$8.D4.D$7.D5.D$6.D6.D$5.D7.D$4.D8.D$
3.D9.D$2.D10.D$.D11.D$ED10.DE$D11.D$D10.D$D9.D$D8.D$D7.D$D6.D$D5.D$D
4.D$D3.D$D2.D$D.D$2D$E!

Code: Select all

x = 14, y = 14, rule = 2_235_4H_O3
12.D$12.2D$11.D$10.D$9.D$8.D$7.D$6.D$5.D$4.D$3.D$2.D$2D$.D!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 9th, 2015, 8:31 pm

Making a small change to the previous rule produces rule 24_235_4H_O3.

The rule definition:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 7;
  final static int numOscillators = 3;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,1,0,1,0},
      {2,2,1,2,1,2,2},
      {3,3,3,3,3,3,3},
      {0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 1; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if ((t == 1) && (i != 3))
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
the Golly rule tree:

Code: Select all

@RULE 24_235_4H_O3
@TREE
num_states=7
num_neighbors=8
num_nodes=29
1 0 2 3 0 5 6 4
2 0 0 0 0 0 0 0
1 1 1 3 0 5 6 4
2 0 2 0 0 2 0 0
3 1 3 1 1 3 1 1
1 1 2 3 0 5 6 4
2 2 5 2 2 5 2 2
3 3 6 3 3 6 3 3
4 4 7 4 4 7 4 4
1 0 1 3 0 5 6 4
2 5 9 5 5 9 5 5
3 6 10 6 6 10 6 6
4 7 11 7 7 11 7 7
5 8 12 8 8 12 8 8
6 13 13 13 13 13 13 13
2 9 5 9 9 5 9 9
3 10 15 10 10 15 10 10
4 11 16 11 11 16 11 11
5 12 17 12 12 17 12 12
6 18 18 18 18 18 18 18
7 14 19 14 14 19 14 14
2 5 0 5 5 0 5 5
3 15 21 15 15 21 15 15
4 16 22 16 16 22 16 16
5 17 23 17 17 23 17 17
6 24 24 24 24 24 24 24
7 19 25 19 19 25 19 19
8 20 26 20 20 26 20 20
9 27 27 27 27 27 27 27
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
and example patterns:

Code: Select all

x = 9, y = 9, rule = 24_235_4H_O3
6.3A$6.2B$6.A$3.BC2BCB$3.C.A.C$3.B2AB$ABAB.BABA$AB.2C.BA$A2.B2.A!

Code: Select all

x = 15, y = 25, rule = 24_235_4H_O3
14.D$12.2D$12.D$11.D18$3.D$2.D$.D$D!

Code: Select all

x = 18, y = 26, rule = 24_235_4H_O3
10.CD$9.2D$8.CD.3C$8.D.C2A$10.C2A$10.C2$15.C.C$16.2A$15.C2A7$14.BA$
13.C2A$12.BCB$8.C$4.CB$4.BA2.C$.F.B2A$BF.3B$2F2.C$BF!

Code: Select all

x = 23, y = 24, rule = 24_235_4H_O3
2.AE$.2E$AE2A$E.A$4.ABA$4.BA$4.A3$9.ABA$9.BA$9.A3$14.ABA$14.BA$14.A2$
22.C$18.C4D$18.D$18.D.C$17.CD$16.BCD!

Code: Select all

x = 5, y = 5, rule = 24_235_4H_O3
3.2D$2.D.D$.D2.D$D3.D$4D!

Code: Select all

x = 6, y = 6, rule = 24_235_4H_O3
5.E$4.2D$3.D.D$2.D2.D$.D3.D$E4DE!

Code: Select all

x = 5, y = 5, rule = 24_235_4H_O3
2.C.E$2.CE$2.E2C$AE$EA!

Code: Select all

x = 27, y = 27, rule = 24_235_4H_O3
25.D$25.2D$25.D$25.D$4.E5.F21$4D$.D!

Code: Select all

x = 123, y = 123, rule = 24_235_4H_O3
118.E4$57.E$112.A$111.BA$106.A3.ABA$105.BA$104.ABA$56.3A$56.2B40.A$
56.A40.BA$96.ABA3$52.3A$52.2B$52.A30.EA$83.EA$81.2AEA$81.A.E$76.ABA6.
A$76.AB6.AB$48.3A25.A6.ABA$48.2B$48.A$66.ABA21.A$66.AB21.AB$66.A21.AB
A3$56.ABA36.A$56.AB36.AB$56.A36.ABA3$46.ABA51.A$41.3A2.AB51.AB$40.4E
2.A51.ABA$41.A60.A.E$40.2A59.2AEA$102.EA$101.EA$39.A$38.2B$37.3A58.3A
$98.2B$98.A10.ABA$109.BA$109.A2$113.ABA$113.BA$34.A78.A$33.2B$32.3A
58.3A19.ABA$93.2B20.BA5.E$93.A21.A6$7.A21.A$E5.AB20.2B$5.ABA19.3A58.
3A$88.2B$9.A78.A$8.AB$7.ABA2$13.A$12.AB$11.ABA10.A$23.2B$22.3A58.3A$
83.2B$83.A$20.AE$19.AE$18.AE2A59.2A$18.E.A60.A$22.ABA51.A2.4E$22.BA
51.BA2.3A$22.A51.ABA3$27.ABA36.A$27.BA36.BA$27.A36.ABA3$32.ABA21.A$
32.BA21.BA$32.A21.ABA$74.A$73.2B$37.ABA6.A25.3A$37.BA6.BA$37.A6.ABA$
39.E.A$38.AE2A$38.AE$38.AE30.A$69.2B$68.3A3$24.ABA$24.AB40.A$24.A40.
2B$64.3A$16.ABA$16.AB$10.ABA3.A$10.AB$10.A$65.E4$4.E!

Code: Select all

x = 27, y = 27, rule = 24_235_4H_O3
9.E5.F9$26.E3$16.A$15.BA$14.ABA$20.F5$F6$E!

Code: Select all

x = 6, y = 6, rule = 24_235_4H_O3
5.C2$2.C.AC$3.3A$2.4A$C.C2A!

Code: Select all

x = 6, y = 6, rule = 24_235_4H_O3
3A.C$3ABA$3ABA$.2BACB$C2AC2A$3.BA!

Code: Select all

x = 53, y = 9, rule = 24_235_4H_O3
47.C$50.B$24.C24.2C.C$44.C4.B.2A$24.A23.CA.2A$23.BA21.CB2A2B$C.C19.BA
.C19.BC2.B2A$.2A16.C.2A.2A21.2ABA$C2A20.C2A20.C2A!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » March 12th, 2015, 2:05 pm

The definition of rule 3_25_4_O2 is:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 6;
  final static int numOscillators = 2;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,1,0,0,1,0,0,0},
      {2,2,2,1,2,2,2,2,2},
      {3,3,3,3,3,3,3,3,3},
      {0,0,0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 0; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if (t == 1)
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
and the Golly rule tree is:

Code: Select all

@RULE 3_25_4_O2
@TREE
num_states=6
num_neighbors=8
num_nodes=36
1 0 2 3 0 5 4
2 0 0 0 0 0 0
1 1 2 3 0 5 4
2 0 2 0 0 2 0
3 1 3 1 1 3 1
1 0 1 3 0 5 4
2 2 5 2 2 5 2
3 3 6 3 3 6 3
4 4 7 4 4 7 4
2 5 0 5 5 0 5
3 6 9 6 6 9 6
4 7 10 7 7 10 7
5 8 11 8 8 11 8
3 9 3 9 9 3 9
4 10 13 10 10 13 10
5 11 14 11 11 14 11
6 12 15 12 12 15 12
2 2 0 2 2 0 2
3 3 17 3 3 17 3
4 13 18 13 13 18 13
5 14 19 14 14 19 14
6 15 20 15 15 20 15
7 16 21 16 16 21 16
3 17 1 17 17 1 17
4 18 23 18 18 23 18
5 19 24 19 19 24 19
6 20 25 20 20 25 20
7 21 26 21 21 26 21
8 22 27 22 22 27 22
3 1 1 1 1 1 1
4 23 29 23 23 29 23
5 24 30 24 24 30 24
6 25 31 25 25 31 25
7 26 32 26 26 32 26
8 27 33 27 27 33 27
9 28 34 28 28 34 28
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
The behavior of some simple patterns is fascinating. Two examples being:

Code: Select all

x = 2, y = 4, rule = 3_25_4_O2
.D3$2D!

Code: Select all

x = 2, y = 4, rule = 3_25_4_O2
.E3$2D!
Brian Prentice

User avatar
BlinkerSpawn
Posts: 1992
Joined: November 8th, 2014, 8:48 pm
Location: Getting a snacker from R-Bee's

Re: Extending Generations Rules

Post by BlinkerSpawn » March 13th, 2015, 9:09 pm

bprentice wrote: and finally this:

Code: Select all

x = 4, y = 3, rule = 0_245_5_O4
.E$A.2H$.E!
What are these called?

Brian Prentice
It's a binary counter.
LifeWiki: Like Wikipedia but with more spaceships. [citation needed]

Image

towerator
Posts: 328
Joined: September 2nd, 2013, 3:03 pm

Re: Extending Generations Rules

Post by towerator » March 14th, 2015, 12:41 pm

I found this odd breeder:

Code: Select all

x = 7, y = 11, rule = 24_235_4H_O3
4.A$2.4A$2.CAC$2.2C$2.A$.2B$3A$4.2AC$4.BAC$4.BA$4.A!
I've never seen anything like this: it uses it's own output to build more rakes.
EDIT: after much trimming, includin on the rakes, I reduced it to as little as 25 cells. Is it possible to do better?
EDIT²: yep, by advancing and furthre trimming, I reduced it to 22

Code: Select all

x = 6, y = 11, rule = 24_235_4H_O3
3.3A$2.B2AB$3.A2$2.B$2.C$BAB2.A$2A3.A$4.CA$4.CA$5.A!
That's... quite. It is smaller than swith engine ping-pong in GoL.
This is game of life, this is game of life!
Loafin' ships eaten with a knife!

User avatar
BlinkerSpawn
Posts: 1992
Joined: November 8th, 2014, 8:48 pm
Location: Getting a snacker from R-Bee's

Re: Extending Generations Rules

Post by BlinkerSpawn » March 24th, 2015, 6:51 pm

That initial glider in your pattern is unnecessary, so I got rid of it.
Here's the 15-cell revision.

Code: Select all

x = 4, y = 11, rule = 24_235_4H_O3
.3A$B2AB$.A4$3.A$3.A$2.CA$2.CA$3.A!
LifeWiki: Like Wikipedia but with more spaceships. [citation needed]

Image

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » April 3rd, 2015, 7:54 pm

A modified Generations rule MG1_4_O3.

The rule definition:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 7;
  final static int numOscillators = 3;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,3,1,0,1,0,0,0,0},
      {2,2,2,2,1,0,2,2,2},
      {2,3,3,3,3,3,3,3,3},
      {0,0,1,0,0,0,0,1,2}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 0; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if (t == 1)
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
The rule tree:

Code: Select all

@RULE MG1_4_O3
@TREE
num_states=7
num_neighbors=8
num_nodes=44
1 0 2 2 0 5 6 4
1 3 2 3 0 5 6 4
2 0 1 0 0 1 0 0
1 1 2 3 1 5 6 4
2 1 3 1 1 3 1 1
3 2 4 2 2 4 2 2
1 0 2 3 0 5 6 4
2 3 6 3 3 6 3 3
3 4 7 4 4 7 4 4
4 5 8 5 5 8 5 5
1 1 1 3 0 5 6 4
2 6 10 6 6 10 6 6
3 7 11 7 7 11 7 7
4 8 12 8 8 12 8 8
5 9 13 9 9 13 9 9
1 0 0 3 0 5 6 4
2 10 15 10 10 15 10 10
3 11 16 11 11 16 11 11
4 12 17 12 12 17 12 12
5 13 18 13 13 18 13 13
6 14 19 14 14 19 14 14
2 15 6 15 15 6 15 15
3 16 21 16 16 21 16 16
4 17 22 17 17 22 17 17
5 18 23 18 18 23 18 18
6 19 24 19 19 24 19 19
7 20 25 20 20 25 20 20
1 0 2 3 1 5 6 4
2 6 27 6 6 27 6 6
3 21 28 21 21 28 21 21
4 22 29 22 22 29 22 22
5 23 30 23 23 30 23 23
6 24 31 24 24 31 24 24
7 25 32 25 25 32 25 25
8 26 33 26 26 33 26 26
1 0 2 3 2 5 6 4
2 27 35 27 27 35 27 27
3 28 36 28 28 36 28 28
4 29 37 29 29 37 29 29
5 30 38 30 30 38 30 30
6 31 39 31 31 39 31 31
7 32 40 32 32 40 32 32
8 33 41 33 33 41 33 33
9 34 42 34 34 42 34 34
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
 5   0 255 255
 6 255   0 255
The first pattern example nicely demonstrates the complexity of the rule:

Code: Select all

x = 5, y = 5, rule = MG1_4_O3
3.2D$3.2D2$2D$2D!
Some simple guns:

Code: Select all

x = 13, y = 144, rule = MG1_4_O3
6.D$6.D.D$6.D.D12$6.D.D$6.D.D11$7.F$4.CA3.2C$D2.CA5BAC$3.AB2FA2FBA$
3.AB2FA2FBA$D2.CA5BAC$4.CA3.2C$7.F12$5.B3.B$4.D.D.D.D$4.D.D.D.D$5.B
3.B11$7.F$4.2C3.AC$.F.CA5BAC$3.AB2FA2FBA$3.AB2FA2FBA$.F.CA5BAC$4.2C
3.AC$7.F10$4.3CD3C$3.CABC.CBAC$2.CAB2CB2CBAC$2.ABC2D.2DCBA$2.ABC2D.
2DCBA$2.CAB2CB2CBAC$3.CABC.CBAC$4.3CD3C10$.D3.3D$5.D2.D$6.3D13$5.3D
$5.D2.D$6.3D13$7.F$4.CA3.2C$3.CA5BAC$3.AB2FA2FBA$3.AB2FA2FBA$3.CA5B
AC$4.CA3.2C$7.F12$5.D.2D$5.D.2D!
A few more guns:

Code: Select all

x = 9, y = 3, rule = MG1_4_O3
D7.D$D.D3.D.D$D.D3.D.D!

Code: Select all

x = 37, y = 10, rule = MG1_4_O3
27.C.C6.E$19.B7.CBAC4.D$12.2CA2C11.CBA$13.B.E.CACACA2C3.CBA$12.A2CE
.EAEAE.B4.C.C$6.C.C4.B.EAEAE.E2CA$6.ABC3.2CACACAC.E.B$6.ABC11.2CA2C
$.D4.CABC7.B$E6.C.C!

Code: Select all

x = 35, y = 5, rule = MG1_4_O3
2.B$3.D.D$B2.D.D$3.D$2.B31.E!

Code: Select all

x = 63, y = 25, rule = MG1_4_O3
2.B$3.D.D31.B$B2.D.D$3.D27.B.3C$2.B30.CECB$33.3C13$62.B2$58.D$57.F2$
62.B$30.B4.D!

Code: Select all

x = 12, y = 38, rule = MG1_4_O3
3.B4$D4.D$6.F$2.B$7.B$10.B13$3.6C$4.B2.B$3.CA2CAC$5.2B$4.C2AC4$4.B$
7.B2$8.F$9.D4$11.B!

Code: Select all

x = 48, y = 42, rule = MG1_4_O3
34.B4.B3$35.3C$3.B31.CEC$35.2CD3$D4.D$6.F2$7.B$10.B13$3.6C$4.B2.B$3.
CA2CAC$5.2B$4.C2AC3$40.D$4.B41.D$7.B38.BD2$8.F37.B$9.D32.B4$11.B!
Brian Prentice

bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Extending Generations Rules

Post by bprentice » November 3rd, 2015, 10:55 am

Here is an extension of the Generations rule 23/345/4 which is featured here:

viewtopic.php?f=11&t=767#p5425

and was recently revisited here:

viewtopic.php?f=11&t=376&start=250#p24363

The rule definition is:

Code: Select all

  /* Put your state count, neighbor count, and function here */
  final static int numStates = 5;
  final static int numOscillators = 1;
  final static int numNeighbors = 8;
  final static int ruleTable[][] =
    {
      {0,0,0,1,1,1,0,0,0},
      {2,2,1,1,2,2,2,2,2},
      {3,3,3,3,3,3,3,3,3},
      {0,0,0,0,0,0,0,0,0}
    };

  /* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
  /* order for five neighbors is n, w, e, s, c */

  int adjustNeighbor(int n)
  {
    if (n >= (numStates - numOscillators))
      return n - numStates + numOscillators + 1;
    return n; 
  }

  int f(int[] a)
  {
    int cell = a[8];
    int count = 0;
    for (int i = 0; i < 8; i++)
    {
      int t = adjustNeighbor(a[i]);
      if (t == 1)
        count += t;
    }
    if (cell >= (numStates - numOscillators))
    {
      if (cell == (numStates - 1))
        return numStates - numOscillators;
      return cell + 1;
    }
    return ruleTable[cell][count];
  }
When inserted into RuleTreeGen.java, compiled and run this Golly rule tree is produced:

Code: Select all

@RULE 23_345_4_O1
@TREE
num_states=5
num_neighbors=8
num_nodes=38
1 0 2 3 0 4
2 0 0 0 0 0
1 0 1 3 0 4
2 0 2 0 0 2
3 1 3 1 1 3
1 1 1 3 0 4
2 2 5 2 2 5
3 3 6 3 3 6
4 4 7 4 4 7
1 1 2 3 0 4
2 5 9 5 5 9
3 6 10 6 6 10
4 7 11 7 7 11
5 8 12 8 8 12
2 9 9 9 9 9
3 10 14 10 10 14
4 11 15 11 11 15
5 12 16 12 12 16
6 13 17 13 13 17
2 9 0 9 9 0
3 14 19 14 14 19
4 15 20 15 15 20
5 16 21 16 16 21
6 17 22 17 17 22
7 18 23 18 18 23
3 19 1 19 19 1
4 20 25 20 20 25
5 21 26 21 21 26
6 22 27 22 22 27
7 23 28 23 23 28
8 24 29 24 24 29
3 1 1 1 1 1
4 25 31 25 25 31
5 26 32 26 26 32
6 27 33 27 27 33
7 28 34 28 28 34
8 29 35 29 29 35
9 30 36 30 30 36
@COLORS
 0   0   0   0
 1 255   0   0
 2   0 255   0
 3   0   0 255
 4 255 255   0
Some knight ship guns:

Code: Select all

x = 5, y = 3, rule = 23_345_4_O1
D.D.D$.3D$.D.D!

Code: Select all

x = 5, y = 3, rule = 23_345_4_O1
D.D.D2$.D.D!

Code: Select all

x = 8, y = 20, rule = 23_345_4_O1
3.2A$.2A2.2A$.2B2.2B$A2B2.2BA$2A.ABDBA$.BCDC2BA$2.2CADCA$2.BCACA$3.
3A$4.A$4.A$3.3A$2.BCACA$2.2CADCA$.BCDC2BA$2A.ABDBA$A2B2.2BA$.2B2.2B
$.2A2.2A$3.2A!

Code: Select all

x = 12, y = 13, rule = 23_345_4_O1
.3A$A.DB$D.2B$.ADA5.A$8.BAB$9.2C$9.2CB$9.2C$8.BAB$.ADA5.A$D.2B$A.DB
$.3A!

Code: Select all

x = 9, y = 18, rule = 23_345_4_O1
4.3A$3.4A$2.3AC.A$3.DCB3A$4.AD3A$2C.D2$2.B$.A2C.BA$2.AB.2CA$6.B2$5.
D.2C$3ADA$3ABCD$.A.C3A$2.4A$2.3A!

Code: Select all

x = 7, y = 13, rule = 23_345_4_O1
2.2A$.CD2A$4.DA$CAD3A$.2A4$4.2A$.3ADAC$.AD$2.2ADC$3.2A!

Code: Select all

x = 12, y = 12, rule = 23_345_4_O1
3.C$4.DA.3A$3.2ACDA2BA$4.D.3ACB$5.BC2.2C$.AB6.2CB$B2C6.BA$.2C2.CB$.
BC3A.D$.A2BADC2A$2.3A.AD$8.C!

Code: Select all

x = 11, y = 8, rule = 23_345_4_O1
3.A.D.A$2.A.D.D.A$2.ADADADA$C2A5.2AC$.AB2.A2.BA$.A7BA$2.A5BA$4.3A!

Code: Select all

x = 11, y = 11, rule = 23_345_4_O1
9.2A$9.2B$7.B3A$3.C3.BC2A$2.B5.AB$3A3.ADA$3A2.AD.D$2A3.DBDA$2.C2.AB
2A$6.2A$6.2A!

Code: Select all

x = 10, y = 8, rule = 23_345_4_O1
5.CABA$6.A2BA$5.2A.BA$.ADAD.D.2A$ACAB3.A$.ADCD.C$2.2CA$3.B!
Brian Prentice

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Extending Generations Rules

Post by Saka » November 5th, 2015, 9:28 am

Huh.

Code: Select all

x = 3, y = 5, rule = _235_4_O3
D.D$.F$2.D$.F$.D!

Code: Select all

x = 3, y = 5, rule = _235_4_O3
D.D$.F$3D$.F$.D!
A 3-cell:

Code: Select all

x = 2, y = 3, rule = _235_4_O3
D2$FD!

Code: Select all

x = 3, y = 2, rule = _235_4_O3
.D$F.D!
Umm...

Code: Select all

x = 3, y = 2, rule = _235_4_O3
.DF$2FD!
THE TWISTER:

Code: Select all

x = 4, y = 4, rule = _235_4_O3
FD.F$.F2D$2DF$F.DF!

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Extending Generations Rules

Post by Saka » November 12th, 2015, 6:40 am

More!

Code: Select all

x = 4, y = 3, rule = 23_345_4_O1
2D$D2.D$2.2D!

Code: Select all

x = 3, y = 4, rule = 23_345_4_O1
2.D$D$2.D$.2D!

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Extending Generations Rules

Post by Saka » December 15th, 2015, 4:34 am

Code: Select all

x = 6, y = 7, rule = 2_235_4H_O3
.D.D$.D3.D$3.D$.D2.D$D$2.D.D$D!

Code: Select all

x = 5, y = 9, rule = 2_235_4H_O3
D$3.D2$.D.D2$4.D$D.D2$.D!

Code: Select all

x = 8, y = 9, rule = 2_235_4H_O3
.D$4.D2$D.D.D$7.D$5.D$.D.D2$2.D!
new knightship!

Code: Select all

x = 9, y = 5, rule = 2_235_4H_O3
4.ABCBA$4.A2CB$2.C.A2C$.2A.AB$2AC.A!
A gun that "recycles"

Code: Select all

x = 8, y = 13, rule = 2_235_4H_O3
6.D$D2.D2$5.D$3.D$6.D$5.D2$3.D.D$6.D3$2.D.D2.D!
Very interesting!

Code: Select all

x = 24, y = 22, rule = 2_235_4H_O3
23.D9$6.D$D2.D2$5.D$3.D$6.D$5.D2$3.D.D$6.D3$2.D.D2.D!
Wow

Code: Select all

x = 32, y = 35, rule = 2_235_4H_O3
31.D9$14.D$8.D2.D2$13.D$11.D$14.D$13.D2$11.D.D$14.D3$10.D.D2.D11$D$7.
D$D!

Post Reply