Plus Minus Rules
viewtopic.php?f=11&t=1496
have been somewhat disappointing. However the following 5 state rule seems to have some potential. The rule definition is:
Code: Select all
final static int numStates = 5;
final static int numNeighbors = 8;
final static int ruleTable[][] =
{
{0,0,2,0,0,2,1,3,0,0,0,1,0,2,0,0,0,0,0,3,0,4,0,0,0,2,4,3,0,0,3,0,0},
{0,0,0,0,2,3,1,0,2,0,1,0,0,0,2,0,0,0,0,3,0,4,0,0,0,2,4,3,0,0,3,0,0},
{0,0,0,0,0,0,2,2,2,0,0,2,0,1,0,0,0,0,3,1,0,0,2,0,0,3,4,0,1,0,0,0,0},
{0,0,0,0,4,0,1,2,0,0,3,0,0,4,2,0,0,0,0,4,0,3,0,0,3,3,3,0,0,0,0,0,0},
{0,0,2,0,0,2,1,3,0,0,0,1,0,2,0,0,0,0,3,0,0,0,4,0,3,0,4,2,3,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 */
private int getState(int s)
{
if (s == 1)
return -2;
else if (s == 2)
return -1;
else if (s == 3)
return 1;
else if (s == 4)
return 2;
return 0;
}
int f(int[] a)
{
int neighborCount =
getState(a[0]) +
getState(a[1]) +
getState(a[2]) +
getState(a[3]) +
getState(a[4]) +
getState(a[5]) +
getState(a[6]) +
getState(a[7]);
return ruleTable[a[8]][neighborCount + 16];
}
Code: Select all
@RULE PlusMinus2_001
@TREE
num_states=5
num_neighbors=8
num_nodes=141
1 0 0 0 0 0
1 0 2 0 2 0
1 0 0 3 0 3
2 0 1 0 0 2
1 2 0 1 4 2
2 1 0 4 0 0
2 0 4 1 0 0
1 3 3 1 4 0
2 0 0 0 2 7
2 2 0 0 7 0
3 3 5 6 8 9
1 0 1 0 3 0
1 1 0 2 0 1
2 0 11 12 4 1
2 4 12 0 1 0
3 5 13 14 6 3
3 6 14 5 3 8
1 4 4 0 3 0
2 7 0 2 0 17
3 8 6 3 9 18
1 0 0 2 0 4
2 0 2 7 17 20
3 9 3 8 18 21
4 10 15 16 19 22
1 0 2 2 0 0
2 11 24 0 12 0
2 12 0 11 0 4
3 13 25 26 14 5
3 14 26 13 5 6
4 15 27 28 16 10
4 16 28 15 10 19
2 17 7 0 20 0
3 18 8 9 21 31
4 19 16 10 22 32
1 0 0 0 3 3
2 20 0 17 0 34
3 21 9 18 31 35
4 22 10 19 32 36
5 23 29 30 33 37
1 1 1 2 1 1
1 3 0 2 2 3
2 24 39 40 0 11
2 0 40 24 11 12
3 25 41 42 26 13
3 26 42 25 13 14
4 27 43 44 28 15
4 28 44 27 15 16
5 29 45 46 30 23
5 30 46 29 23 33
1 2 2 3 3 0
2 0 17 20 34 49
3 31 18 21 35 50
4 32 19 22 36 51
5 33 30 23 37 52
1 4 4 4 3 4
2 34 20 0 49 54
3 35 21 31 50 55
4 36 22 32 51 56
5 37 23 33 52 57
6 38 47 48 53 58
1 0 2 0 4 0
1 2 3 0 0 2
2 39 60 61 40 24
2 40 61 39 24 0
3 41 62 63 42 25
3 42 63 41 25 26
4 43 64 65 44 27
4 44 65 43 27 28
5 45 66 67 46 29
5 46 67 45 29 30
6 47 68 69 48 38
6 48 69 47 38 53
1 3 3 0 0 2
2 49 0 34 54 72
3 50 31 35 55 73
4 51 32 36 56 74
5 52 33 37 57 75
6 53 48 38 58 76
1 0 0 1 0 3
2 54 34 49 72 78
3 55 35 50 73 79
4 56 36 51 74 80
5 57 37 52 75 81
6 58 38 53 76 82
7 59 70 71 77 83
1 2 0 0 0 2
2 60 85 0 61 39
2 61 0 60 39 40
3 62 86 87 63 41
3 63 87 62 41 42
4 64 88 89 65 43
4 65 89 64 43 44
5 66 90 91 67 45
5 67 91 66 45 46
6 68 92 93 69 47
6 69 93 68 47 48
7 70 94 95 71 59
7 71 95 70 59 77
2 72 49 54 78 0
3 73 50 55 79 98
4 74 51 56 80 99
5 75 52 57 81 100
6 76 53 58 82 101
7 77 71 59 83 102
1 3 3 0 0 0
2 78 54 72 0 104
3 79 55 73 98 105
4 80 56 74 99 106
5 81 57 75 100 107
6 82 58 76 101 108
7 83 59 77 102 109
8 84 96 97 103 110
2 85 0 0 0 60
2 0 0 85 60 61
3 86 112 113 87 62
3 87 113 86 62 63
4 88 114 115 89 64
4 89 115 88 64 65
5 90 116 117 91 66
5 91 117 90 66 67
6 92 118 119 93 68
6 93 119 92 68 69
7 94 120 121 95 70
7 95 121 94 70 71
8 96 122 123 97 84
8 97 123 96 84 103
2 0 72 78 104 0
3 98 73 79 105 126
4 99 74 80 106 127
5 100 75 81 107 128
6 101 76 82 108 129
7 102 77 83 109 130
8 103 97 84 110 131
2 104 78 0 0 0
3 105 79 98 126 133
4 106 80 99 127 134
5 107 81 100 128 135
6 108 82 101 129 136
7 109 83 102 130 137
8 110 84 103 131 138
9 111 124 125 132 139
@COLORS
0 0 0 0
1 255 0 0
2 0 255 0
3 0 0 255
4 255 255 0
Code: Select all
x = 31, y = 7, rule = PlusMinus2_001
B.AB21.C.DC$A2.A21.D2.D$4.AB23.DC$5.A24.D$B2.A.A19.C2.D.D$.A3.B20.D
3.C$.B2AB21.C2DC!
Code: Select all
x = 36, y = 92, rule = PlusMinus2_001
16.B3.B9.B3.B$2D14.A.A.A9.A.A.A$2D14.A.A.A9.A.A.A$16.B3.B9.B3.B3$32.
B2AB2$33.2A2$32.B2AB10$32.B2AB2$33.2A2$32.B2AB15$33.2D$33.2D11$16.C
3.C9.C3.C$2A14.D.D.D9.D.D.D$2A14.D.D.D9.D.D.D$16.C3.C9.C3.C3$32.C2D
C2$33.2D2$32.C2DC10$32.C2DC2$33.2D2$32.C2DC15$33.2A$33.2A!
Code: Select all
x = 88, y = 34, rule = PlusMinus2_001
.B55.C$.B55.C$4.B55.C$B4.B.B48.C4.C.C$8.B55.C$5.B2.A52.C2.D$6.A.A53.
D.D$7.AB54.DC$B.B53.C.C$3.A55.D$B3.A51.C3.D$.B2AB9.2AB.B.B36.C2DC9.
2DC.C.C$14.B3.A.A49.C3.D.D$13.B2.A3.A48.C2.D3.D$3.B2AB7.B5.B38.C2DC
7.C5.C$13.2B.A2.B49.2C.D2.C$4.2B7.B46.2C7.C5$20.B2AB52.C2DC$19.B3.A
51.C3.D$19.A.B.A51.D.C.D$4.2B13.A2.2B36.2C13.D2.2C$20.A55.D$6.B12.B
.B40.C12.C.C$7.B.B53.C.C$7.A.A53.D.D$9.A18.B2AB33.D18.C2DC$9.B18.B2.
A33.C18.C2.D$26.B2.B.A50.C2.C.D$27.A3.B51.D3.C$26.B.2AB51.C.2DC!
Code: Select all
x = 163, y = 63, rule = PlusMinus2_001
2.B100.C$2.A53.B.AB43.D53.C.DC$A.A53.A2.A41.D.D53.D2.D$B.B57.AB39.C
.C57.DC$61.A100.D$56.B2.A.A95.C2.D.D$57.A3.B96.D3.C$57.B2AB97.C2DC$
B2AB97.C2DC2$.2A44.BA2.B50.2D44.CD2.C$52.AB99.DC$B2AB43.A5.A47.C2DC
43.D5.D$47.BA2.A.A94.CD2.D.D$49.A3.B96.D3.C$49.B2AB97.C2DC2$40.B.AB
97.C.DC$40.A2.A97.D2.D$44.AB99.DC$45.A100.D$40.B2.A.A95.C2.D.D$B2AB
37.A3.B55.C2DC37.D3.C$41.B2AB97.C2DC$.2A99.2D2$B2AB27.BA2.B65.C2DC27.
CD2.C$36.AB99.DC$31.A5.A94.D5.D$31.BA2.A.A94.CD2.D.D$33.A3.B96.D3.C
$33.B2AB97.C2DC4$27.2B99.2C$B2AB22.2A73.C2DC22.2D$27.A5.AB93.D5.DC$
.2A24.B6.A67.2D24.C6.D$27.B.A4.A93.C.D4.D$B2AB22.B7.B66.C2DC22.C7.C
$28.AB99.DC9$B2AB97.C2DC2$.2A99.2D2$B2AB97.C2DC5$B.B98.C.C$A.A98.D.
D$2.A100.D$2.B100.C!