Difference between revisions of "User:Entity Valkyrie 2/StateInvestigator"
(46 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
=.rule file= | == .rule file == | ||
@RULE StateInvestigator | @RULE StateInvestigator | ||
@TABLE | @TABLE | ||
n_states: | n_states:17 | ||
neighborhood:Moore | neighborhood:Moore | ||
symmetries:permute | symmetries:permute | ||
var | var a1 = {1,2,4,6,8,10,12,15,16} | ||
var | var a2 = {1,2,4,6,8,10,12,15,16} | ||
var | var a3 = {1,2,4,6,8,10,12,15,16} | ||
var | var a4 = {1,2,4,6,8,10,12,15,16} | ||
var | var b1 = {0,3,5,7,9,11,13} | ||
var | var b2 = {0,3,5,7,9,11,13} | ||
var | var b3 = {0,3,5,7,9,11,13} | ||
var | var b4 = {0,3,5,7,9,11,13} | ||
var | var b5 = {0,3,5,7,9,11,13} | ||
var | var b6 = {0,3,5,7,9,11,13} | ||
var | var b7 = {0,3,5,7,9,11,13} | ||
var | var c1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var | var c2 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var | var c3 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var | var c4 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var | var c5 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var | var c6 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var | var c7 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var | var c8 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} | ||
var d1 = {2,3,6,7,14,16} | |||
var d2 = {8,9,12,13,14} | |||
var | var e1 = {1,2,4,6,8,10,12} | ||
var | var e2 = {1,2,4,6,8,10,12} | ||
var | var e3 = {1,2,4,6,8,10,12} | ||
var | 0, 1,a1,a2,b1,b2,b3,b4,b5, 1 | ||
var | 0, e1,e2,e3,b1,b2,b3,b4,b5, 1 | ||
1, c1,b1,b2,b3,b4,b5,b6,b7, 0 | |||
0, | 1, a1,a2,a3,a4,c1,c2,c3,c4, 0 | ||
1, | 1, d1,c1,c2,c3,c4,c5,c6,c7, 0 | ||
1, | 0, d2,c1,c2,c3,c4,c5,c6,c7, 1 | ||
1, | 6, c1,c2,c3,c4,c5,c6,c7,c8, 7 | ||
6, | 7, c1,c2,c3,c4,c5,c6,c7,c8, 6 | ||
7, | 10, c1,c2,c3,c4,c5,c6,c7,c8, 11 | ||
11, c1,c2,c3,c4,c5,c6,c7,c8, 10 | |||
12, c1,c2,c3,c4,c5,c6,c7,c8, 13 | |||
13, c1,c2,c3,c4,c5,c6,c7,c8, 12 | |||
@COLORS | @COLORS | ||
1 0 236 91 | 1 0 236 91 | ||
2 0 192 254 | 2 0 192 254 | ||
3 254 0 0 | 3 254 0 0 | ||
4 254 254 254 | 4 254 254 254 | ||
5 75 75 75 | 5 75 75 75 | ||
6 254 0 254 | 6 254 0 254 | ||
7 64 0 128 | 7 64 0 128 | ||
8 254 230 0 | |||
9 150 128 0 | |||
10 130 200 0 | |||
11 0 120 40 | |||
12 254 140 0 | |||
13 140 70 0 | |||
14 0 0 254 | |||
15 192 192 192 | |||
16 128 128 128 | |||
=Explanation of the rule= | =Explanation of the rule= | ||
* State 0: off cell (evolves like CGoL) | * State 0: off cell (evolves like CGoL) # | ||
* State 1: on cell (evolves like CGoL) | * State 1: on cell (evolves like CGoL) # | ||
* State 2: killer on cell (kills any adjacent cell, treated as on considering births of cells) | * State 2: killer on cell (kills any adjacent cell, treated as on considering births of cells) # | ||
* State 3: killer off cell (kills any adjacent cell, treated as off considering births of cells) | * State 3: killer off cell (kills any adjacent cell, treated as off considering births of cells) # | ||
* State 4: eternal on cell | * State 4: eternal on cell # | ||
* State 5: eternal off cell | * State 5: eternal off cell # | ||
* State 6: P2 killer on cell (changes into state 7 in next generation) | * State 6: P2 killer on cell (changes into state 7 in next generation) | ||
* State 7: P2 killer off cell (changes into state 6 in next generation) | * State 7: P2 killer off cell (changes into state 6 in next generation) | ||
* State 8: egg on cell (gives birth to all neighboring cells unless already on, treated as on considering survival of cells) # | |||
* State 9: egg off cell (gives birth to all neighboring cells unless already on, treated as off considering survival of cells) # | |||
* State 10: P2 on cell (changes into state 11 in next generation, not killer, not egg) | |||
* State 11: P2 off cell (changes into state 10 in next generation, not killer, not egg) | |||
* State 12: P2 egg on cell (changes into state 13) | |||
* State 13: P2 egg off cell (changes into state 12) | |||
* State 14: Inverter (inverts all neighboring cells) # | |||
* State 15: Catalyst (like state 4, but it requires State 1 cells to give birth) | |||
* State 16: Catalyst killer (like state 2, but it requires State 1 cells to give birth) | |||
States | States 2-5, 8-9, and 14-16 never change. States 6-7, 10-11 and 12-13 always toggle. | ||
All states with # are also present in ExtendedLifeFancy. | |||
This rule is really similar to ExtendedLifeFancy. Despite that, StateInvestigator was made totally independent of LifeExtendedFancy when EV2 was searching a rule with multiple states that could allow stable bumpers, bouncers and small and fast syringes. | |||
Versions: | |||
* 2018 Beta (4 states) | |||
* 2019 1.0 (6 states) | |||
* 2019 1.1 (8 states) | |||
* 2020 2.0 (14 states) | |||
* 2020 2.1 (17 states) | |||
All patterns made in ExtendedLife or ExtendedLifeFancy that are converted into StateInvestigator are called "Prehistoric". | |||
All patterns made in LifeHistory that are converted into StateInvestigator are called "Historic". | |||
2. | |||
=Pages (page under construction)= | |||
* [[User:Entity Valkyrie 2/StateInvestigator/BF68B|BF68B]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Prehistoric Patterns|Prehistoric Patterns]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/JP21's Historic Patterns|JP21's Historic Patterns]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Spark to glider and herschel|Spark to glider, spark to herschel]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/One-cell thick patterns|One-cell thick patterns]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Reflectors|Reflectors]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Syringes|Syringes]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Traffic light shuttles examples|Traffic light shuttles examples]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/P20, P22, P24, P30, P33, P36, P40, P42, P44, P46 eggless guns|P20, P22, P24, P30, P33, P36, P40, P42, P44, P46 eggless guns]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/P14-19 pseudo-period guns|P14-19 pseudo-period guns]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/B shuttles|B shuttles and hasslers]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/20 conduits|16 original Herschel conduits (except Bx222), F171, Lx65, R49 and Bx106]] | |||
* [[User:Entity_Valkyrie_2/StateInvestigator/More_conduits|More SI conduits]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Old pi conduits|Old pi conduits]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/45+2n and 66+8n gun collections|45+2n and 66+8n gun collections]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/p2-p8 sparkers|p2-p8 sparkers]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Highspeed Signals|Highspeed signals]] and [[User:Entity Valkyrie 2/StateInvestigator/Valkyrie Signal Turner|Valkyrie Signal Turner]] | |||
* [[User:Entity Valkyrie 2/StateInvestigator/Old P53 emu gun (one loop only)|Old P53 emu gun]] | |||
{{EmbedViewer | {{EmbedViewer | ||
Line 117: | Line 123: | ||
|caption = Some pi conduits | |caption = Some pi conduits | ||
|viewerconfig = #C [[ THEME 6 HEIGHT 640 WIDTH 1000 ZOOM 6 ]] | |viewerconfig = #C [[ THEME 6 HEIGHT 640 WIDTH 1000 ZOOM 6 ]] | ||
|rle = x = 141, y = | |rle = x = 141, y = 55, rule = StateInvestigator | ||
102.A2$99.A.3A.A$101.A.A$101.A. | 102.A2$99.A.3A.A$101.A.A$101.A.A5$9.A30.A30.A2$6.A.3A.A24.A.3A.A24.A. | ||
3A.A$8.A.A28.A.A28.A.A$8.A.A28.A.A28.A.A$93.E17.E2$60.C30.E21.E$81.E | 3A.A$8.A.A28.A.A28.A.A$8.A.A28.A.A28.A.A$93.E17.E2$60.C30.E21.E$81.E | ||
2$E17.E42.E19.E9.E21.E$E7.3A7.E12.E7.3A7.E11.E8.3A8.E9.E9.3A9.E$8.A.A | 2$E17.E42.E19.E9.E21.E$E7.3A7.E12.E7.3A7.E11.E8.3A8.E9.E9.3A9.E$8.A.A | ||
Line 126: | Line 132: | ||
14.A.A$44.A.A37.A27.E2$84.3A$82.A.A37.C$84.3A$99.3A21.C$84.A14.A.A$ | 14.A.A$44.A.A37.A27.E2$84.3A$82.A.A37.C$84.3A$99.3A21.C$84.A14.A.A$ | ||
99.A.A19.E3$117.B! | 99.A.A19.E3$117.B! | ||
Line 242: | Line 249: | ||
}} | }} | ||
{{EmbedViewer | {{EmbedViewer | ||
Line 261: | Line 256: | ||
|caption = Period 3-8 strong dot and domino sparkers | |caption = Period 3-8 strong dot and domino sparkers | ||
|viewerconfig = #C [[ THEME 6 HEIGHT 320 WIDTH 1200 ZOOM 6 ]] | |viewerconfig = #C [[ THEME 6 HEIGHT 320 WIDTH 1200 ZOOM 6 ]] | ||
|rle = x = | |rle = x = 190, y = 12, rule = StateInvestigator | ||
3.A10.2A14.A10.2A15.A12. | 3.A10.2A14.A10.2A15.A12.2A12.E3.E2.E12.2A18.A17.2A17.A21.2A$.E3.E6.E | ||
4.E10.E3.E6.E4.E11.E3.E8.E4.E27.2E4.2E12.2E3.2E11.2E4.E12.2E3.2E15.2E | |||
4. | 4.E$EA3.AE4.EA4.AE8.E5.E4.E6.E10.D3.D8.D4.D8.C2D6.2DC$DE3AED4.DE4AED | ||
8.D5.D4.D6.D10.D3.D8.D4.D10.CD.2B.DC7.C2D6.2DC8.C2D5.2DC7.C2D5.2DC8.C | |||
2D5.2DC11.C2D5.2DC$.EC.CE6.EC2.CE9.E5AE4.E6AE11.EBE10.E2BE12.C.2E.C | |||
10.CD.2B.DC12.CD.B.DC11.CD.B.DC12.CD.B.DC15.CD.B.DC$28.E3.E6.E4.E43. | |||
E6.E4. | 2A13.C.2E.C14.C.E.C13.C.E.C14.C.E.E17.C.E.E$88.2D15.2A56.2A20.2A$105. | ||
E | 2D17.3AE14.3AE17.2A20.2A$123.4ADE12.4ADE14.B4.B16.B4.B$122.A.A2.2D11. | ||
A.A2.2D14.A4B17.A4B$122.2A4.A11.2A4.A18.A21.A$161.B2.D18.B2.D! | |||
$ | |||
}} | }} | ||
Line 281: | Line 271: | ||
{{EmbedViewer | {{EmbedViewer | ||
|position = left | |position = left | ||
|caption = lightspeed and (6,0)/7 signals. These signals are interchangeable to vary speed.<br /> | |caption = lightspeed and (6,0)/7 signals. These signals are interchangeable to vary speed and period.<br /> | ||
|viewerconfig = #C [[ THEME 6 HEIGHT 500 WIDTH 1000 ZOOM 6 ]] | |viewerconfig = #C [[ THEME 6 HEIGHT 500 WIDTH 1000 ZOOM 6 ]] | ||
|rle = x = 117, y = 71, rule = StateInvestigator | |rle = x = 117, y = 71, rule = StateInvestigator | ||
Line 299: | Line 289: | ||
55.CD.B.DC$56.C.E.C4$53.C2D5.2DC$55.CD.B.DC$56.C.E.C4$53.C2D5.2DC$55. | 55.CD.B.DC$56.C.E.C4$53.C2D5.2DC$55.CD.B.DC$56.C.E.C4$53.C2D5.2DC$55. | ||
CD.B.DC$56.C.E.C$57.E.E5$63.A$62.2A$62.A.A! | CD.B.DC$56.C.E.C$57.E.E5$63.A$62.2A$62.A.A! | ||
}} | |||
{{EmbedViewer | |||
|position = left | |||
|caption = Smallest G-to-H known. Repeat time 49.<br /> | |||
|viewerconfig = #C [[ THEME 6 HEIGHT 320 WIDTH 480 ZOOM 6 ]] | |||
|rle = x = 117, y = 71, rule = StateInvestigator | |||
x = 31, y = 31, rule = StateInvestigator | |||
28.A.A$28.2A$29.A10$16.A$16.A.A$16.2A8$.E2$E4.A9.E$DA.2A14.A$DA2.2A | |||
11.3A$2E15.A$17.A2$5.E! | |||
Line 306: | Line 310: | ||
}} | }} | ||
= StateInvestigator-ExtendedLifeFancy conversion = | = StateInvestigator-ExtendedLifeFancy conversion (section outdated) = | ||
States 0 to 5 also exist in ExtendedLifeFancy. The only difference are the colors and the fact that states 2 and 4 in StateInvestigator become states 8 and 6 (respectively) in ExtendedLifeFancy. States 6 and 7 can't be converted to ExtendedLifeFancy. Despite the similarity, StateInvestigator was made ''completely independent'' of ExtendedLifeFancy. | States 0 to 5 also exist in ExtendedLifeFancy. The only difference are the colors and the fact that states 2 and 4 in StateInvestigator become states 8 and 6 (respectively) in ExtendedLifeFancy. States 6 and 7 can't be converted to ExtendedLifeFancy. Despite the similarity, StateInvestigator was made ''completely independent'' of ExtendedLifeFancy. |
Revision as of 19:05, 26 October 2020
.rule file
@RULE StateInvestigator @TABLE n_states:17 neighborhood:Moore symmetries:permute var a1 = {1,2,4,6,8,10,12,15,16} var a2 = {1,2,4,6,8,10,12,15,16} var a3 = {1,2,4,6,8,10,12,15,16} var a4 = {1,2,4,6,8,10,12,15,16} var b1 = {0,3,5,7,9,11,13} var b2 = {0,3,5,7,9,11,13} var b3 = {0,3,5,7,9,11,13} var b4 = {0,3,5,7,9,11,13} var b5 = {0,3,5,7,9,11,13} var b6 = {0,3,5,7,9,11,13} var b7 = {0,3,5,7,9,11,13} var c1 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var c2 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var c3 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var c4 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var c5 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var c6 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var c7 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var c8 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} var d1 = {2,3,6,7,14,16} var d2 = {8,9,12,13,14} var e1 = {1,2,4,6,8,10,12} var e2 = {1,2,4,6,8,10,12} var e3 = {1,2,4,6,8,10,12} 0, 1,a1,a2,b1,b2,b3,b4,b5, 1 0, e1,e2,e3,b1,b2,b3,b4,b5, 1 1, c1,b1,b2,b3,b4,b5,b6,b7, 0 1, a1,a2,a3,a4,c1,c2,c3,c4, 0 1, d1,c1,c2,c3,c4,c5,c6,c7, 0 0, d2,c1,c2,c3,c4,c5,c6,c7, 1 6, c1,c2,c3,c4,c5,c6,c7,c8, 7 7, c1,c2,c3,c4,c5,c6,c7,c8, 6 10, c1,c2,c3,c4,c5,c6,c7,c8, 11 11, c1,c2,c3,c4,c5,c6,c7,c8, 10 12, c1,c2,c3,c4,c5,c6,c7,c8, 13 13, c1,c2,c3,c4,c5,c6,c7,c8, 12 @COLORS 1 0 236 91 2 0 192 254 3 254 0 0 4 254 254 254 5 75 75 75 6 254 0 254 7 64 0 128 8 254 230 0 9 150 128 0 10 130 200 0 11 0 120 40 12 254 140 0 13 140 70 0 14 0 0 254 15 192 192 192 16 128 128 128
Explanation of the rule
- State 0: off cell (evolves like CGoL) #
- State 1: on cell (evolves like CGoL) #
- State 2: killer on cell (kills any adjacent cell, treated as on considering births of cells) #
- State 3: killer off cell (kills any adjacent cell, treated as off considering births of cells) #
- State 4: eternal on cell #
- State 5: eternal off cell #
- State 6: P2 killer on cell (changes into state 7 in next generation)
- State 7: P2 killer off cell (changes into state 6 in next generation)
- State 8: egg on cell (gives birth to all neighboring cells unless already on, treated as on considering survival of cells) #
- State 9: egg off cell (gives birth to all neighboring cells unless already on, treated as off considering survival of cells) #
- State 10: P2 on cell (changes into state 11 in next generation, not killer, not egg)
- State 11: P2 off cell (changes into state 10 in next generation, not killer, not egg)
- State 12: P2 egg on cell (changes into state 13)
- State 13: P2 egg off cell (changes into state 12)
- State 14: Inverter (inverts all neighboring cells) #
- State 15: Catalyst (like state 4, but it requires State 1 cells to give birth)
- State 16: Catalyst killer (like state 2, but it requires State 1 cells to give birth)
States 2-5, 8-9, and 14-16 never change. States 6-7, 10-11 and 12-13 always toggle.
All states with # are also present in ExtendedLifeFancy.
This rule is really similar to ExtendedLifeFancy. Despite that, StateInvestigator was made totally independent of LifeExtendedFancy when EV2 was searching a rule with multiple states that could allow stable bumpers, bouncers and small and fast syringes.
Versions:
- 2018 Beta (4 states)
- 2019 1.0 (6 states)
- 2019 1.1 (8 states)
- 2020 2.0 (14 states)
- 2020 2.1 (17 states)
All patterns made in ExtendedLife or ExtendedLifeFancy that are converted into StateInvestigator are called "Prehistoric".
All patterns made in LifeHistory that are converted into StateInvestigator are called "Historic".
Pages (page under construction)
- BF68B
- Prehistoric Patterns
- JP21's Historic Patterns
- Spark to glider, spark to herschel
- One-cell thick patterns
- Reflectors
- Syringes
- Traffic light shuttles examples
- P20, P22, P24, P30, P33, P36, P40, P42, P44, P46 eggless guns
- P14-19 pseudo-period guns
- B shuttles and hasslers
- 16 original Herschel conduits (except Bx222), F171, Lx65, R49 and Bx106
- More SI conduits
- Old pi conduits
- 45+2n and 66+8n gun collections
- p2-p8 sparkers
- Highspeed signals and Valkyrie Signal Turner
- Old P53 emu gun
StateInvestigator-ExtendedLifeFancy conversion (section outdated)
States 0 to 5 also exist in ExtendedLifeFancy. The only difference are the colors and the fact that states 2 and 4 in StateInvestigator become states 8 and 6 (respectively) in ExtendedLifeFancy. States 6 and 7 can't be converted to ExtendedLifeFancy. Despite the similarity, StateInvestigator was made completely independent of ExtendedLifeFancy.
Scripts (lua, based on invert.lua, only supports states 0 to 5 in StateInvestigator):
-- StateInvestigator to ExtendedLifeFancy local g = golly() local gp = require "gplus" -- re-assigning inner loop functions results in a 10% speed up local setcell = g.setcell local getcell = g.getcell local r = gp.rect(g.getselrect()) if r.empty then g.exit("There is no selection.") end -- local t1 = os.clock() local oldsecs = os.clock() for row = r.top, r.bottom do -- if large selection then give some indication of progress local newsecs = os.clock() if newsecs - oldsecs >= 1.0 then oldsecs = newsecs g.update() end for col = r.left, r.right do if g.getcell(col, row) == 2 then g.setcell(col, row, 8) elif g.getcell(col, row) == 4 then g.setcell(col, row, 6) elseif g.getcell(col, row) > 5 then error("Invalid state") end end end if not r.visible() then g.fitsel() end -- g.show(""..(os.clock()-t1)) g.setrule("ExtendedLifeFancy")
-- ExtendedLifeFancy to StateInvestigator local g = golly() local gp = require "gplus" -- re-assigning inner loop functions results in a 10% speed up local setcell = g.setcell local getcell = g.getcell local r = gp.rect(g.getselrect()) if r.empty then g.exit("There is no selection.") end -- local t1 = os.clock() local oldsecs = os.clock() for row = r.top, r.bottom do -- if large selection then give some indication of progress local newsecs = os.clock() if newsecs - oldsecs >= 1.0 then oldsecs = newsecs g.update() end for col = r.left, r.right do if g.getcell(col, row) == 6 then g.setcell(col, row, 4) elseif g.getcell(col, row) == 8 then g.setcell(col, row, 2) elseif g.getcell(col, row) > 8 then error("Invalid state") elseif g.getcell(col, row) == 7 then error("Invalid state") elseif g.getcell(col, row) == 4 then error("Invalid state") end end end if not r.visible() then g.fitsel() end -- g.show(""..(os.clock()-t1)) g.setrule("StateInvestigator")