simsim314 wrote:@simeks & @chris_c can you please post your search scripts, just in case someone will want to find more constrained slow salvo (like P2 constrain on gliders or when all the intermediates must be P1 etc. - I don't think anyone needs "clean" search utility, just reference for the future).
Here are the scrips I've been using with a brief description:
The first "script", salvomod.c, looks for ways to modify an existing pattern with slow salvo.
You set the strings "start_spec" and "wanted_spec" to a life history string (without the first line), for example like this, where you select and copy the area just inside the blue borders. A white cell may never die during a search. Green cells in the wanted pattern must be present in the result, Empty cells are "don't care", so any junk is allowed in the result:
Code: Select all
x = 60, y = 21, rule = LifeHistory
28B4.28B$B7.8D11.B4.B26.B$B6.10D10.B4.B26.B$B5.12D9.B4.B26.B$B4.14D8.
B4.B26.B$B3.16D7.B4.B26.B$B2.18D6.B4.B26.B$B.19D6.B4.B26.B$B20D6.B4.B
26.B$B20D6.B4.B26.B$B20D6.B4.B26.B$B19D3.2C2.B4.B22.2A2.B$B13D4.D3.C.
C2.B4.B21.A.A2.B$B12D9.C4.B4.B16.A4.A4.B$B12D2.2A3.2C.4CB4.B16.A2.2A.
4AB$B12D2.A.A.C.C.C2.CB4.B16.A.A.A.A2.AB$B12D4.A.C.C.C3.B4.B16.A.A.A.
A3.B$B.11D4.A.C.2C4.B4.B16.A.A.2A4.B$B2.9D6.C8.B4.B17.A8.B$B3.7D16.B
4.B26.B$28B4.28B!
This script works in three steps:
- Generate slow salvo configurations from a start seed (set to blinker now, but can be changed). The required lane range for each new glider is calculated by the script. Each new configuration must have a bounding box where (width + height <= SLOW_MAX_SIZE).
- Then test each new configuration in all possible places in the allowed search area (the red area), including both phases and mirroring along the salvo glider diagonal. For each placement, try shooting an activating glider in all lanes from SEED_LANE_ON to (SEED_LANE_OFF - 1) and inserted at a timing corresponding to SEED_SAFE_PROGRESION. If the start pattern itself is P2, it needs to be searched as two different problems.
- If the wanted pattern is reached it will be reported as a result, but after that the script runs a verification that the full slow salvo can be executed with the start pattern present. Often this will cause the start pattern to explode. If the verification worked out, this will be reported, and the same slow salvo configuration will not be tried again. If it failed the script will try the same configuration again if it finds another slow salvo that will generate it.
The other script, seeds.c, is much like CatForce - it places objects in a search area. But instead of a fixed active pattern, it shoots gliders at the objects in lanes from LANE_ON to (LANE_OFF - 1) and in both phases if any of the objects is P2.
Just like salvomod.c it looks for any setup that will convert "start_spec" into "wanted_spec", and these two are set up in exactly the same way as in salvomod.c. All placed objects must fit in the red area.
chris_c wrote:EDIT: @simeks those slow-salvo converters are really impressive by the way!
Thanks!
chris_c wrote:If we have recipes for 0-degree gliders directly from the elbow with offsets from -35, ..., +35 it might be possible to build everything in green and we might be able to build the blinker in white in the SW (or any other suitable junk) directly from the elbow at the beginning.
When I search with minimum distance 90 ticks for 0 degree gliders, most of them are close to the original glider lane (mostly -16 to 16), but I think this is in part an artifact of the cost function used to decide which intermediate patterns to keep. I'll try to figure out a better cost function for finding wide 0 degree gliders. There were a few exceptions, like this +41 output, so it should certainly be possible:
Code: Select all
x = 866, y = 868, rule = LifeHistory
4$857.3A2$855.A5.A$855.A5.A$855.A5.A2$857.3A6$850.3A$852.A$851.A35$813.
3A$815.A$814.A78$733.2A$734.2A$733.A78$653.3A$655.A$654.A78$573.3A$575.
A$574.A78$493.3A$495.A$494.A26$465.A$465.2A$464.A.A78$385.A$385.2A$384.
A.A78$305.2A$304.A.A$306.A22$281.2A$282.2A$281.A78$201.2A$202.2A$201.
A78$121.3A$123.A$122.A78$41.3A$43.A$42.A34$5.2A$4.A.A$6.A!
dvgrn wrote:Seems like it will be a bit tricky to build that top eater (shown in yellow below) after the trigger glider goes by, given the lack of space due to the previous Snark in the spiral --
Here are a two ideas:
Code: Select all
x = 96, y = 56, rule = LifeHistory
20.A63.A$18.3A61.3A$17.A63.A$17.2A62.2A7$7.2A62.2A$6.A.A5.2A54.A.A5.
2A$6.A7.2A54.A7.2A$5.2A62.2A2$19.A63.A$.A13.2A.A.A58.2A.A.A$2.A11.A.A
.A.A57.A.A.A.A$3A8.A2.A.A.A.A.2A51.A2.A.A.A.A.2A$11.4A.2A2.A2.A51.4A.
2A2.A2.A$15.A4.2A57.A4.2A$13.A.A61.A.A$13.2A50.A11.2A$66.A$20.D43.3A
17.E$18.3D61.3E$17.D63.E$17.2D62.2E3$7.2A8.2A$6.A2.A6.A.A61.A$6.A2.A
6.2A61.A.A4.A$7.2A3.2A65.A2.A2.A.A$7.2D2.A.A57.2D7.2A4.2A$6.D.D3.A.2D
54.D.D5.2D$6.D7.2D54.D7.2D$5.2D62.2D2$19.A63.A$15.2A.A.A58.2A.A.A$14.
A.A.A.A57.A.A.A.A$11.A2.A.A.A.A.2A51.A2.A.A.A.A.A7.A$11.4A.2A2.A2.A
51.4A.2A3.2A6.A.A$15.A4.2A57.A13.A.A$13.A.A61.A.A14.A$13.2A62.2A6.2A$
84.A2.A$84.A2.A$85.2A$91.3A2$87.2A$86.A2.A$86.A2.A$87.2A!