Code: Select all
#C [[ GRID MAXGRIDSIZE 14 THEME Catagolue ]]
#CSYNTH gun_363 costs 3600 cells.
#C period 363 fullperiod 363 bbox 60 by 60
#CLL state-numbering golly
x = 60, y = 60, rule = LifeHistory
30.2A$30.A.A$32.A4.2A$28.4A.2A2.A2.A10.A$28.A2.A.A.A.A.2A9.ABA$30.
BABABA.A13.2B$31.B2ABA.A12.A2BAB$32.2B.BA14.A.ABA.2A$31.3B7.A10.A
3B2A.A$22.2A6.4B7.3A9.BA4.A$23.A6.B2A3B8.A10.4A$23.A.AB3.B2A3B7.A.
A8.2B.A$24.2AB.10B5.A.AB7.AB.AB$26.13B5.A3B7.3AB$26.14B6.4B7.2A$
26.15B5.6B6.AB$28.8B2.4B4.7B3.BA.A$28.6B5.4B2.8B3.B2A$27.9B4.17B$
26.4B4.2A5.16B$25.4B5.A6.16B$24.4B7.3A3.16B$23.4B10.A3.15B$22.4B
11.A.2AB.12B$21.4B10.2A.A.AB2.11B$20.4B11.A2.A5.10B3.2A$19.4B14.2A
5.2B2A6B3.A$18.4B21.3B2A6B4.A$17.4B23.10B3.2A$16.4B24.8B.B2A$3.2A
10.4B24.7B3.B2AB2A$4.A9.4B25.6B6.B.A$2.A10.4B27.6B4.2A3.A$2.5A5.4B
5.2A21.8B.A2.4A$7.A4.4B5.A21.9BA.A.A$4.3AB2.7B.BA.A12.A8.7B.2BAB.A
.2A$3.A.2B3.7B.B2A13.3A6.6B3.2B2.A.A$3.4A12B18.A4.7B4.B.2A2.A$.2A
2.BA3B2A7B17.2A4.7B3.A.A2.A.A$A2.3AB.2B2A7B17.4B.8B3.2A2.A.A$2A.A.
B3.10B19.11B8.A$3.A8.8B17.12B$3.2A7.9B16.12B$13.3B2.4B15.11B$11.5B
3.4B13.9B12.2A$11.2A7.B3A9.2B.10B11.A$12.A8.A3B7.2A14B.B4.BA.A$9.
3A10.A3B3.3BABA17B2.B2A$9.A13.7B2AB2A8B3A9B$24.5B2A11BA13B$25.7BA
3BA5BA3BA9B$26.5B5ABA18B$28.2BA7BA6BA10B$29.9BA5BAB5.B.4B$29.A2B5A
6B11.4B$29.ABA6BA2BAB12.4B$33.3B4.2B14.3BA$34.B6.2B14.ABA$40.B2AB
14.2A$41.2A16.B!
gloc.py tries all of the combinations and tells you any are better than its current list of gun sizes. It considers snarks, bumpers, the hotcrystal0 mechanism, p4 cenarks of both color parities, bouncers, and duoplet sparkers. It knows about the p3 bumper and p3 syringe to save rows, and has a vague idea that it's hard to put cenarks close to things or weld bouncers to syringes.
The code is a bodge job from a non-programmer, and there's at least a few bugs that I haven't tracked down, which is likely because I've mismeasured some period-something reflector or another. While I've attempted to cut down on false positives, there will still be a bunch of reports of possible guns that can't actually be built in practice.
gloc.py doesn't take any arguments. You run it and it gives you the list. The output consists of a lot of headers that look something like this:
Code: Select all
Reflector Sequence: p4 CC cenark, Bouncer, syringe
NW19T102, period 344, 3584 area (-1066 cells), snark trombone slide pulled out by 0.5 diagonals; use periodic syringe
[...]
This script is very much a work in progress. I hope to eventually make it work with G-to-Xs that aren't syringes.