Glider Guns of large periods

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 30th, 2014, 11:27 am

[1..7]+8N timings


I was thinking to place a delayer that consist of three snarks and one silver mirror. placing the glider back to it's track but with odd delay. Placing 0-7 such delayers can do the same job.I guess your solution is more elegant, but this approach will do the job.

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 30th, 2014, 12:02 pm

dvgrn wrote:...p1024 (or thereabouts) is more likely unless someone can dig up a more compact "glider stopper" component -- the receiver-based one in the previous pattern doesn't fit at p512. The loop glider can fairly easily be shot down directly by a 90-degree glider, of course, but that takes some extra synchronization circuitry -- seems better to use a stable switch if possible.
Does anyone remember what the smallest glider-to-surplus-junk converter is these days, that can block a glider lane? Something along these lines, but without a block or anything else going missing:

Code: Select all

#C Mike Playle's G+block->beehive converter
#C http://conwaylife.com/forums/viewtopic.php?f=2&t=335#p1864
x = 24, y = 20, rule = LifeHistory
2$19.B$18.3B$17.4B$16.4B$15.4B$14.4B$13.4B$12.4B$11.4B$10.4B$9.4B$8.
4B$7.4B$6.4B$5.4B$4.4B$3.4B$2.4B!
I noticed that Paul Callahan's old bistable switch can do this trick without extending very far across the target glider lane, so maybe that's a good option:

Code: Select all

#C p520+8N base loop --
#C glider suppression input at left, glider insertion input at right
x = 208, y = 177, rule = B3/S23
116b2o$115bo2bo$116b2o26$119b2o$110b2o7b2o$111bo$64b2o3b2o40bobo$64b2o
2bob3o39b2o$68bo4bo54b2o$64b4ob2o2bo54bo$64bo2bobobob2o51bobo15b2o$67b
obobobo52b2o16bobo$68b2obobo72bo$72bo38bo34b2o$111b3o$58b2o42bo11bo$
59bo7b2o7bo9bo15b3o8b2o14bo$24bo34bobo5b2o7b3o5b3o18bo22bobo$24b3o33b
2o17bo3bo20b2o23bo$27bo50b2o3b2o$26b2o8b2o96bo$36b2o21bo72b3o$57b3o71b
o$56bo74b2o$56b2o21bo$70b2o8bo$70bo7b3o58b2ob2o$71b3o18b2o46bob2o$73bo
18b2o23b2o21bo$13bo66b2o35bo14b2o4b3o$13b3o63bo2bo35b3o11b2o3bo3b2o$
16bo57b2o4b2o38bo16b4o2bo$15b2o25b2o29bobo47b2o15bob2o$41bobo29bo48bob
o12b3o2bo$42bo29b2o48bo13bo5bo$82b2o37b2o14b5o$82bo56bo$83b3o$22b2o61b
o$21bo2bo$22b2o$10b2o$9bobo$9bo99bo$8b2o42b2o55b3o$52bo59bo$15b2o15bo
20b3o55b2o$16bo13b5o14b2o4bo$13b3o13bo5bo13bo$13bo15bo2b3o12bobo$28b2o
bo15b2o$28bo2b4o$29b2o3bo3b2o$31b3o4b2o42b2o37b2o$31bo50b2o30b2o5bobo$
28b2obo82b2o7bo$28b2ob2o90b2o2$110bo$39b2o17bo50bobob2o$40bo17b3o48bob
obobo$37b3o21bo46b2obobobo2bo$37bo22b2o47bo2b2ob4o$97b2o10bo4bo$97b2o
11b3obo2b2o$112b2o3b2o4$3o67b2o$2bo60b2o5bobo$bo61b2o7bo$72b2o2$59bo
17b2o$58bobob2o14bo43b2o$58bobobobo10b3o44bobo$57b2obobobo2bo7bo48bo4b
2o$58bo2b2ob4o52b4ob2o2bo2bo$58bo4bo56bo2bobobobob2o$59b3obo2b2o55bobo
bobo$61b2o3b2o25b2o29b2obobo$93bobo32bo$95bo$95b2o17b2o$97bo17bo7b2o$
95b3o17bobo5b2o$94bo21b2o$94b2o6$96b2o28b2o$96b2o28bo$72b2o53b3o$71bob
o55bo$71bo$70b2o8$206bo$205bo$189bo9bo5b3o$189b3o5b3o$124bo67bo3bo$
122b3o15bo50b2o3b2o$121bo18b3o$108b2o11b2o20bo$108b2o32b2o5$167b2o13b
2o$77b2o60b2o26b2o13b2o$77b2o60b2o53b2o$83b2o108bo2bo$83b2o109b2o4b2o$
200bobo$202bo$81b2o119b2o$81b2o5b2o102b2o$88b2o39b2o62bo$129bo60b3o$
130b3o11b2o44bo$132bo11b2o$109b2o74b2o$109b2o74bo$158b2o23bobo$158bo
24b2o$159b3o$161bo6b2o$148b2o18b2o$149bo$146b3o28b2o$146bo30b2o6b2o$
185b2o3$173bo$172bobo$172b2o6b2o$180bo$181b3o$183bo!

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 30th, 2014, 12:06 pm

Here is the basic idea - doesn't work yet because of glider color issue.

Code: Select all

x = 1889, y = 1133, rule = B3/S23
23b2o3b2o$23b2o2bob3o$27bo4bo$23b4ob2o2bo$23bo2bobobob2o$26bobobobo$
27b2obobo$31bo2$17b2o$18bo7b2o$18bobo5b2o$19b2o7$29b2o$29bo$30b3o$32bo
5$4bo$2b5o14b2o$bo5bo13bo$bo2b3o12bobo$2obo15b2o$o2b4o$b2o3bo3b2o$3b3o
4b2o$3bo$2obo$2ob2o3$11b2o$12bo$9b3o$9bo285$1407b2o3b2o$1405b3obo2b2o
306bo$1404bo4bo308b5o14b2o$1404bo2b2ob4o303bo5bo13bo$1403b2obobobo2bo
303bo2b3o12bobo$1404bobobobo305b2obo15b2o$1404bobob2o306bo2b4o$1405bo
311b2o3bo3b2o$1719b3o4b2o$1418b2o299bo$1409b2o7bo297b2obo$1409b2o5bobo
297b2ob2o$1416b2o2$1727b2o$1728bo$1725b3o$1725bo2$1406b2o$1407bo$1404b
3o$1404bo30$1798b2o$1798b2o2$1766bo$1764b3o$1748bo14bo$1748b3o12b2o$
1751bo$1750b2o3$1751b2o$1751b2o17b2o$1770b2o2$1808b2o$1808b2o3$1767b2o
$1767bo19b2o$1768b3o15bobo$1770bo15bo$1764b2o19b2o$1764bo$1765b3o$
1767bo6$1773b2o$1773bo$1754b2o15bobo$1754b2o15b2o$1742b2o$1741bobo$
1741bo$1740b2o8$1753b2o$1752bobo$1752bo$1751b2o9$1763b2o$1763b2o6$
1752b2o$1753bo19b2o$1753bobo17bo$1754b2o15bobo$1766bo4b2o$1765bobo$
1765bobo$1754b2o10bo$1753bobo$1753bo$1752b2o$1767b2o$1767bo$1768b3o$
1770bo$1673b2o$1673b2o9$1658b2o$1658b2o6$1619bo$1617b3o$1616bo$1616b2o
$1678b2o$1678bo$1679b3o$1681bo$1585b2o$1586bo$1586bobo$1587b2o2b2o37bo
$1591b2o35b3o15bo9bo$1627bo18b3o5b3o$1614b2o11b2o20bo3bo$1614b2o32b2o
3b2o3$1690bo34bo$1690b3o32b3o$1693bo34bo$1670b2o20b2o33b2o$1670b2o7b2o
56b2o$1585b2o52b2o38bo57bo$1584bobo16b2o34b2o36bobo55bobo$1584bo18bobo
45b2o24b2o4b2o44b2o4b2o$1583b2o20bo44bo2bo7b2o20bo44bo2bo$1599b2o4b2o
44b2o4b2o3bo18bobo45b2o$1599bobo55bobo2bobo16b2o34b2o$1601bo57bo3b2o
52b2o$1592b2o7b2o56b2o$1592b2o20b2o33b2o$1615bo34bo$1612b3o32b3o$1612b
o34bo3$1692b2o32b2o3b2o$1692b2o11b2o20bo3bo$1705bo18b3o5b3o$1669b2o35b
3o15bo9bo$1665b2o2b2o37bo$1664bobo$1664bo23b2o$1663b2o23bo$1603bo85b3o
44b2o$1601b3o87bo22b2o20b2o$1600bo114bo$1600b2o102bo10bobo$1541bo160b
3o11b2o$1539b3o144bo14bo$1538bo147b3o12b2o$1538b2o149bo189bo$1688b2o
187b3o$1579b2o295bo$1580bo295b2o$1580bobo106b2o$1507b2o72b2o106b2o17b
2o$1508bo199b2o174b2ob2o$1508bobo374bob2o$1509b2o2b2o37bo193b2o137bo$
1513b2o35b3o15bo9bo167b2o129b2o4b3o$1549bo18b3o5b3o298b2o3bo3b2o$1536b
2o11b2o20bo3bo306b4o2bo$1536b2o32b2o3b2o128b2o161b2o15bob2o$1705bo19b
2o140bobo12b3o2bo$1706b3o15bobo140bo13bo5bo$1708bo15bo141b2o14b5o$
1595b2o105b2o19b2o159bo$1595b2o105bo$1703b3o75bo$1705bo57b2o14b5o$
1507b2o52b2o201bo13bo5bo$1506bobo16b2o34b2o201bobo12b3o2bo$1506bo18bob
o45b2o190b2o15bob2o$1505b2o20bo44bo2bo203b4o2bo$1521b2o4b2o44b2o4b2o
193b2o3bo3b2o$1521bobo55bobo129b2o61b2o4b3o$1523bo57bo129bo70bo$1514b
2o7b2o56b2o109b2o15bobo70bob2o$1514b2o20b2o33b2o119b2o15b2o70b2ob2o$
1537bo34bo107b2o$1534b3o32b3o107bobo$1534bo34bo109bo93b2o$1678b2o93bo$
1503bo270b3o$1503b3o270bo$1506bo$1505b2o4$1691b2o$1690bobo$1525bo132b
2o30bo$1523b3o110b2o20b2o29b2o$1522bo114bo$1522b2o102bo10bobo$1463bo
160b3o11b2o$1461b3o144bo14bo$1460bo147b3o12b2o$1460b2o149bo$1610b2o$
1501b2o$1502bo198b2o$1502bobo106b2o88b2o$1429b2o72b2o106b2o17b2o$1430b
o199b2o$1430bobo$1431b2o2b2o37bo193b2o$1435b2o35b3o15bo9bo167b2o$1471b
o18b3o5b3o189b2o$1458b2o11b2o20bo3bo193bo19b2o$1458b2o32b2o3b2o128b2o
62bobo17bo$1627bo19b2o43b2o15bobo$1628b3o15bobo55bo4b2o$1630bo15bo56bo
bo$1517b2o105b2o19b2o56bobo$1517b2o105bo67b2o10bo31b2o$1625b3o63bobo
42bo$1627bo63bo42bobo$1429b2o52b2o205b2o42b2o$1428bobo16b2o34b2o220b2o
$1428bo18bobo45b2o208bo13b2o$1427b2o20bo44bo2bo208b3o10b2o$1443b2o4b2o
44b2o4b2o205bo$1443bobo55bobo129b2o93b2o$1445bo57bo129bo94b2o6b2o$
1436b2o7b2o56b2o109b2o15bobo102b2o$1436b2o20b2o33b2o119b2o15b2o$1459bo
34bo107b2o$1456b3o32b3o107bobo120bo$1456bo34bo109bo121bobo$1600b2o121b
2o6b2o$1425bo305bo$1425b3o304b3o$1428bo305bo$1427b2o4$1613b2o$1612bobo
$1447bo132b2o30bo$1445b3o110b2o20b2o29b2o$1444bo114bo$1444b2o102bo10bo
bo$1385bo160b3o11b2o$1383b3o144bo14bo$1382bo147b3o12b2o$1382b2o149bo$
1532b2o$1423b2o$1424bo198b2o$1424bobo106b2o88b2o$1351b2o72b2o106b2o17b
2o$1352bo199b2o$1352bobo$1353b2o2b2o37bo193b2o$1357b2o35b3o15bo9bo167b
2o$1393bo18b3o5b3o189b2o$1380b2o11b2o20bo3bo193bo19b2o$1380b2o32b2o3b
2o128b2o62bobo17bo$1549bo19b2o43b2o15bobo$1550b3o15bobo55bo4b2o$1552bo
15bo56bobo$1439b2o105b2o19b2o56bobo$1439b2o105bo67b2o10bo31b2o$1547b3o
63bobo42bo$1549bo63bo42bobo$1351b2o52b2o205b2o42b2o$1350bobo16b2o34b2o
220b2o$1350bo18bobo45b2o208bo13b2o$1349b2o20bo44bo2bo208b3o10b2o$1365b
2o4b2o44b2o4b2o205bo$1365bobo55bobo129b2o93b2o$1367bo57bo129bo94b2o6b
2o$1358b2o7b2o56b2o109b2o15bobo102b2o$1358b2o20b2o33b2o119b2o15b2o$
1381bo34bo107b2o$1378b3o32b3o107bobo120bo$1378bo34bo109bo121bobo$1522b
2o121b2o6b2o$1347bo305bo$1347b3o304b3o$1350bo305bo$1349b2o4$1535b2o$
1534bobo$1369bo132b2o30bo$1367b3o110b2o20b2o29b2o$1366bo114bo$1366b2o
102bo10bobo$1307bo160b3o11b2o$1305b3o144bo14bo$1304bo147b3o12b2o$1304b
2o149bo$1454b2o$1345b2o$1346bo198b2o$1346bobo106b2o88b2o$1273b2o72b2o
106b2o17b2o$1274bo199b2o$1274bobo$1275b2o2b2o37bo193b2o$1279b2o35b3o
15bo9bo167b2o$1315bo18b3o5b3o189b2o$1302b2o11b2o20bo3bo193bo19b2o$
1302b2o32b2o3b2o128b2o62bobo17bo$1471bo19b2o43b2o15bobo$1472b3o15bobo
55bo4b2o$1474bo15bo56bobo$1361b2o105b2o19b2o56bobo$1361b2o105bo67b2o
10bo31b2o$1469b3o63bobo42bo$1471bo63bo42bobo$1273b2o52b2o205b2o42b2o$
1272bobo16b2o34b2o220b2o$1272bo18bobo45b2o208bo13b2o$1271b2o20bo44bo2b
o208b3o10b2o$1287b2o4b2o44b2o4b2o205bo$1287bobo55bobo129b2o93b2o$1289b
o57bo129bo94b2o6b2o$1280b2o7b2o56b2o109b2o15bobo102b2o$1280b2o20b2o33b
2o119b2o15b2o$1303bo34bo107b2o$1300b3o32b3o107bobo120bo$1300bo34bo109b
o121bobo$1444b2o121b2o6b2o$1269bo305bo$1269b3o304b3o$1272bo305bo$1271b
2o4$1457b2o$1456bobo$1291bo132b2o30bo$1289b3o110b2o20b2o29b2o$1288bo
114bo$1288b2o102bo10bobo$1229bo160b3o11b2o$1227b3o144bo14bo$1226bo147b
3o12b2o$1226b2o149bo$1376b2o$1267b2o$1268bo198b2o$1268bobo106b2o88b2o$
1195b2o72b2o106b2o17b2o$1196bo199b2o$1196bobo$1197b2o2b2o37bo193b2o$
1201b2o35b3o15bo9bo167b2o$1237bo18b3o5b3o189b2o$1224b2o11b2o20bo3bo
193bo19b2o$1224b2o32b2o3b2o128b2o62bobo17bo$1393bo19b2o43b2o15bobo$
1394b3o15bobo55bo4b2o$1396bo15bo56bobo$1283b2o105b2o19b2o56bobo$1283b
2o105bo67b2o10bo31b2o$1391b3o63bobo42bo$1393bo63bo42bobo$1195b2o52b2o
205b2o42b2o$1194bobo16b2o34b2o220b2o$1194bo18bobo45b2o208bo13b2o$1193b
2o20bo44bo2bo208b3o10b2o$1209b2o4b2o44b2o4b2o205bo$1209bobo55bobo129b
2o93b2o$1211bo57bo129bo94b2o6b2o$1202b2o7b2o56b2o109b2o15bobo102b2o$
1202b2o20b2o33b2o119b2o15b2o$1225bo34bo107b2o$1222b3o32b3o107bobo120bo
$1222bo34bo109bo121bobo$1366b2o121b2o6b2o$1191bo305bo$1191b3o304b3o$
1194bo305bo$1193b2o4$1379b2o$1378bobo$1213bo132b2o30bo$1211b3o110b2o
20b2o29b2o$1210bo114bo$1210b2o102bo10bobo$1151bo160b3o11b2o$1149b3o
144bo14bo$1148bo147b3o12b2o$1148b2o149bo$1298b2o$1189b2o$1190bo198b2o$
1190bobo106b2o88b2o$1117b2o72b2o106b2o17b2o$1118bo199b2o$1118bobo$
1119b2o2b2o37bo193b2o$1123b2o35b3o15bo9bo167b2o$1159bo18b3o5b3o189b2o$
1146b2o11b2o20bo3bo193bo19b2o$1146b2o32b2o3b2o128b2o62bobo17bo$1315bo
19b2o43b2o15bobo$1316b3o15bobo55bo4b2o$1318bo15bo56bobo$1205b2o105b2o
19b2o56bobo$1205b2o105bo67b2o10bo31b2o$1313b3o63bobo42bo$1315bo63bo42b
obo$1117b2o52b2o205b2o42b2o$1116bobo16b2o34b2o220b2o$1116bo18bobo45b2o
208bo13b2o$1115b2o20bo44bo2bo208b3o10b2o$1131b2o4b2o44b2o4b2o205bo$
1131bobo55bobo129b2o93b2o$1133bo57bo129bo94b2o6b2o$1124b2o7b2o56b2o
109b2o15bobo102b2o$1124b2o20b2o33b2o119b2o15b2o$1147bo34bo107b2o$1144b
3o32b3o107bobo120bo$1144bo34bo109bo121bobo$1288b2o121b2o6b2o$1113bo
305bo$1113b3o304b3o$1116bo305bo$1115b2o4$1301b2o$1300bobo$1135bo132b2o
30bo$1133b3o110b2o20b2o29b2o$1132bo114bo$1132b2o102bo10bobo$1073bo160b
3o11b2o$1071b3o144bo14bo$1070bo147b3o12b2o$1070b2o149bo$1220b2o$1111b
2o$1112bo198b2o$1112bobo106b2o88b2o$1039b2o72b2o106b2o17b2o$1040bo199b
2o$1040bobo$1041b2o2b2o37bo193b2o$1045b2o35b3o15bo9bo167b2o$1081bo18b
3o5b3o189b2o$1068b2o11b2o20bo3bo193bo19b2o$1068b2o32b2o3b2o128b2o62bob
o17bo$1237bo19b2o43b2o15bobo$1238b3o15bobo55bo4b2o$1240bo15bo56bobo$
1127b2o105b2o19b2o56bobo$1127b2o105bo67b2o10bo31b2o$1235b3o63bobo42bo$
1237bo63bo42bobo$1039b2o52b2o205b2o42b2o$1038bobo16b2o34b2o220b2o$
1038bo18bobo45b2o208bo13b2o$1037b2o20bo44bo2bo208b3o10b2o$1053b2o4b2o
44b2o4b2o205bo$1053bobo55bobo129b2o93b2o$1055bo57bo129bo94b2o6b2o$
1046b2o7b2o56b2o109b2o15bobo102b2o$1046b2o20b2o33b2o119b2o15b2o$1069bo
34bo107b2o$1066b3o32b3o107bobo120bo$1066bo34bo109bo121bobo$1210b2o121b
2o6b2o$1035bo305bo$1035b3o304b3o$1038bo305bo$1037b2o4$1223b2o$1222bobo
$1057bo132b2o30bo$1055b3o110b2o20b2o29b2o$1054bo114bo$1054b2o102bo10bo
bo$1156b3o11b2o$1140bo14bo$1140b3o12b2o$1143bo$1142b2o2$1233b2o$1143b
2o88b2o$1143b2o17b2o$1034b2o126b2o$1034b2o$1200b2o$1200b2o$1222b2o$
1223bo19b2o$1159b2o62bobo17bo$1159bo19b2o43b2o15bobo$1160b3o15bobo55bo
4b2o$1162bo15bo56bobo$1049b2o105b2o19b2o56bobo$1049b2o105bo67b2o10bo
31b2o$1157b3o63bobo42bo$1159bo63bo42bobo$1222b2o42b2o$1237b2o$1237bo
13b2o$1238b3o10b2o$1240bo$1165b2o93b2o$1165bo94b2o6b2o$1146b2o15bobo
102b2o$1146b2o15b2o$1134b2o$1133bobo120bo$1133bo121bobo$1132b2o121b2o
6b2o$1263bo$1264b3o$1266bo5$1145b2o$1144bobo$1106b2o3b2o31bo$1104b3obo
2b2o30b2o$1103bo4bo$1103bo2b2ob4o$1102b2obobobo2bo$1103bobobobo$1103bo
bob2o$1104bo2$1117b2o$1108b2o7bo37b2o$1108b2o5bobo37b2o$1115b2o5$1144b
2o$1145bo19b2o$1105b2o38bobo17bo$1106bo39b2o15bobo$1103b3o52bo4b2o$
1103bo53bobo$1157bobo$1146b2o10bo31b2o$1145bobo42bo$1145bo42bobo$1144b
2o42b2o$1159b2o$1159bo13b2o$1160b3o10b2o$1162bo$1182b2o$1182b2o6b2o$
1190b2o3$1178bo$1177bobo$1177b2o6b2o$1185bo$1186b3o$1188bo15$1046bo$
1046b3o$1049bo$1048b2o5$1079b2o$1079bo$1077bobo$1035bo37b2o2b2o$1009bo
9bo15b3o35b2o$1009b3o5b3o18bo$1012bo3bo20b2o11b2o$1011b2o3b2o32b2o4$
1011bo$1012bo$1010b3o2$1025b2o52b2o$1025b2o34b2o16bobo$1013b2o45bobo
18bo$1012bo2bo44bo20b2o$1007b2o4b2o44b2o4b2o$1006bobo55bobo$1006bo57bo
$1005b2o56b2o7b2o$1015b2o33b2o20b2o$1015bo34bo$1016b3o32b3o$1018bo34bo
8$1004bo$1004b3o$1007bo$1006b2o54bo$1062b3o$1065bo$1064b2o4$1016b2o$
1009b2o5bobo$1009b2o7bo$1018b2o2$1005bo$1004bobob2o74b2o$1004bobobobo
73b2o$1003b2obobobo2bo$1004bo2b2ob4o$1004bo4bo$1005b3obo2b2o$1007b2o3b
2o4$1069b2o$1069b2o69$1297bo$1297b3o$1300bo$1299b2o7$1309b2o$1302b2o5b
obo$1302b2o7bo$1311b2o2$1298bo$1297bobob2o$1297bobobobo$1296b2obobobo
2bo$1297bo2b2ob4o$1297bo4bo$1298b3obo2b2o$1300b2o3b2o!

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 30th, 2014, 12:18 pm

simsim314 wrote:Here is the basic idea - doesn't work yet because of glider color issue.
Sure, that will work fine. A Silver reflector has four possible glider outputs, one in each direction -- not counting the unlimited number you can get by using a Silver G-to-H variant instead, and adding Herschel conduits and H-to-Gs.

So very likely you can get deltaT=[0..7] just with different combinations of one or two Silver reflectors plus a couple of Snarks. Then it's just a matter of building all eight versions so they're interchangeable and can be dropped in at the same point in the pattern, and that should take care of the timing adjustment problem.

Each version would have an adjustable "trombone-slide" -- one or two reflectors that turn the stream 180 degrees, that can be moved in and out to produce any required +/-8N delay.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 30th, 2014, 1:03 pm

OK everything is in place now - except the delaying mechanism which shouldn't be a problem. I think I will make some script that will work for periods of reasonable size, and will have a constant number of "bits", and will "put 0" in the beginning. My only "fear" for now is that the idea is pretty unpractical, and pays off for pretty large periods. Making it compact might be the next important step, which you already started to work on...

Code: Select all

x = 1851, y = 1040, rule = B3/S23
23b2o3b2o$23b2o2bob3o$27bo4bo$23b4ob2o2bo$23bo2bobobob2o$26bobobobo$
27b2obobo$31bo2$17b2o$18bo7b2o$18bobo5b2o$19b2o7$29b2o$29bo$30b3o$32bo
5$4bo$2b5o14b2o$bo5bo13bo$bo2b3o12bobo$2obo15b2o$o2b4o$b2o3bo3b2o$3b3o
4b2o$3bo$2obo$2ob2o3$11b2o$12bo$9b3o$9bo135$1682bo$1680b5o14b2o$1679bo
5bo13bo$1679bo2b3o12bobo$1678b2obo15b2o$1678bo2b4o$1679b2o3bo3b2o$
1681b3o4b2o$1681bo$1678b2obo$1678b2ob2o3$1689b2o$1690bo$1687b3o$1687bo
35$1760b2o$1760b2o2$1728bo$1726b3o$1710bo14bo$1710b3o12b2o$1713bo$
1712b2o3$1713b2o$1713b2o17b2o$1732b2o2$1770b2o$1770b2o3$1729b2o$1729bo
19b2o$1730b3o15bobo$1732bo15bo$1726b2o19b2o$1726bo$1727b3o$1729bo6$
1735b2o$1735bo$1716b2o15bobo$1716b2o15b2o$1704b2o$1703bobo$1703bo$
1702b2o8$1715b2o$1714bobo$1714bo$1713b2o9$1725b2o$1725b2o6$1714b2o$
1715bo19b2o$1715bobo17bo$1250b2o3b2o459b2o15bobo$1248b3obo2b2o471bo4b
2o$1247bo4bo474bobo$1247bo2b2ob4o470bobo$1246b2obobobo2bo459b2o10bo$
1247bobobobo461bobo$1247bobob2o462bo$1248bo465b2o$1729b2o$1261b2o466bo
$1252b2o7bo468b3o$1252b2o5bobo470bo$1259b2o7$1249b2o$1250bo$1247b3o$
1247bo59$1841bo$1839b3o$1838bo$1838b2o3$1846b2ob2o$1847bob2o$1847bo$
1839b2o4b3o$1839b2o3bo3b2o$1844b4o2bo$1830b2o15bob2o$1829bobo12b3o2bo$
1829bo13bo5bo$1828b2o14b5o$1846bo2$1743bo$1725b2o14b5o$1726bo13bo5bo$
1726bobo12b3o2bo$1727b2o15bob2o$1741b4o2bo$1736b2o3bo3b2o$1736b2o4b3o$
1744bo$1744bob2o$1743b2ob2o3$1735b2o$1735bo$1736b3o$1738bo17$1515b2o$
1515b2o9$1500b2o$1500b2o6$1461bo$1459b3o$1458bo$1458b2o$1520b2o$1520bo
$1521b3o$1523bo$1427b2o$1428bo$1428bobo$1429b2o2b2o37bo$1433b2o35b3o
15bo9bo$1469bo18b3o5b3o$1456b2o11b2o20bo3bo$1456b2o32b2o3b2o3$1532bo
34bo$1532b3o32b3o$1535bo34bo$1512b2o20b2o33b2o$1512b2o7b2o56b2o$1427b
2o52b2o38bo57bo$1426bobo16b2o34b2o36bobo55bobo$1426bo18bobo45b2o24b2o
4b2o44b2o4b2o$1425b2o20bo44bo2bo7b2o20bo44bo2bo$1441b2o4b2o44b2o4b2o3b
o18bobo45b2o$1441bobo55bobo2bobo16b2o34b2o$1443bo57bo3b2o52b2o$1434b2o
7b2o56b2o$1434b2o20b2o33b2o$1457bo34bo$1454b3o32b3o$1454bo34bo3$1534b
2o32b2o3b2o$1534b2o11b2o20bo3bo$1547bo18b3o5b3o$1511b2o35b3o15bo9bo$
1507b2o2b2o37bo$1506bobo$1506bo23b2o$1505b2o23bo$1445bo85b3o44b2o$
1443b3o87bo22b2o20b2o$1442bo114bo$1442b2o102bo10bobo$1383bo160b3o11b2o
$1381b3o144bo14bo$1380bo147b3o12b2o$1380b2o149bo$1530b2o$1421b2o$1422b
o$1422bobo106b2o$1349b2o72b2o106b2o17b2o$1350bo199b2o$1350bobo$1351b2o
2b2o37bo193b2o$1355b2o35b3o15bo9bo167b2o$1391bo18b3o5b3o$1378b2o11b2o
20bo3bo$1378b2o32b2o3b2o128b2o$1547bo19b2o$1548b3o15bobo$1550bo15bo$
1437b2o105b2o19b2o$1437b2o105bo$1545b3o75bo$1547bo57b2o14b5o$1349b2o
52b2o201bo13bo5bo$1348bobo16b2o34b2o201bobo12b3o2bo$1348bo18bobo45b2o
190b2o15bob2o$1347b2o20bo44bo2bo203b4o2bo$1363b2o4b2o44b2o4b2o193b2o3b
o3b2o$1363bobo55bobo129b2o61b2o4b3o$1365bo57bo129bo70bo$1356b2o7b2o56b
2o109b2o15bobo70bob2o$1356b2o20b2o33b2o119b2o15b2o70b2ob2o$1379bo34bo
107b2o$1376b3o32b3o107bobo$1376bo34bo109bo93b2o$1520b2o93bo$1345bo270b
3o$1345b3o270bo$1348bo$1347b2o4$1533b2o$1532bobo$1367bo132b2o30bo$
1365b3o110b2o20b2o29b2o$1364bo114bo$1364b2o102bo10bobo$1305bo160b3o11b
2o$1303b3o144bo14bo$1302bo147b3o12b2o$1302b2o149bo$1452b2o$1343b2o$
1344bo198b2o$1344bobo106b2o88b2o$1271b2o72b2o106b2o17b2o$1272bo199b2o$
1272bobo$1273b2o2b2o37bo193b2o$1277b2o35b3o15bo9bo167b2o$1313bo18b3o5b
3o189b2o$1300b2o11b2o20bo3bo193bo19b2o$1300b2o32b2o3b2o128b2o62bobo17b
o$1469bo19b2o43b2o15bobo$1470b3o15bobo55bo4b2o$1472bo15bo56bobo$1359b
2o105b2o19b2o56bobo$1359b2o105bo67b2o10bo31b2o$1467b3o63bobo42bo$1469b
o63bo42bobo$1271b2o52b2o205b2o42b2o$1270bobo16b2o34b2o220b2o$1270bo18b
obo45b2o208bo13b2o$1269b2o20bo44bo2bo208b3o10b2o$1285b2o4b2o44b2o4b2o
205bo$1285bobo55bobo129b2o93b2o$1287bo57bo129bo94b2o6b2o$1278b2o7b2o
56b2o109b2o15bobo102b2o$1278b2o20b2o33b2o119b2o15b2o$1301bo34bo107b2o$
1298b3o32b3o107bobo120bo$1298bo34bo109bo121bobo$1442b2o121b2o6b2o$
1267bo305bo$1267b3o304b3o$1270bo305bo$1269b2o4$1455b2o$1454bobo$1289bo
132b2o30bo$1287b3o110b2o20b2o29b2o$1286bo114bo$1286b2o102bo10bobo$
1227bo160b3o11b2o$1225b3o144bo14bo$1224bo147b3o12b2o$1224b2o149bo$
1374b2o$1265b2o$1266bo198b2o$1266bobo106b2o88b2o$1193b2o72b2o106b2o17b
2o$1194bo199b2o$1194bobo$1195b2o2b2o37bo193b2o$1199b2o35b3o15bo9bo167b
2o$1235bo18b3o5b3o189b2o$1222b2o11b2o20bo3bo193bo19b2o$1222b2o32b2o3b
2o128b2o62bobo17bo$1391bo19b2o43b2o15bobo$1392b3o15bobo55bo4b2o$1394bo
15bo56bobo$1281b2o105b2o19b2o56bobo$1281b2o105bo67b2o10bo31b2o$1389b3o
63bobo42bo$1391bo63bo42bobo$1193b2o52b2o205b2o42b2o$1192bobo16b2o34b2o
220b2o$1192bo18bobo45b2o208bo13b2o$1191b2o20bo44bo2bo208b3o10b2o$1207b
2o4b2o44b2o4b2o205bo$1207bobo55bobo129b2o93b2o$1209bo57bo129bo94b2o6b
2o$1200b2o7b2o56b2o109b2o15bobo102b2o$1200b2o20b2o33b2o119b2o15b2o$
1223bo34bo107b2o$1220b3o32b3o107bobo120bo$1220bo34bo109bo121bobo$1364b
2o121b2o6b2o$1189bo305bo$1189b3o304b3o$1192bo305bo$1191b2o4$1377b2o$
1376bobo$1211bo132b2o30bo$1209b3o110b2o20b2o29b2o$1208bo114bo$1208b2o
102bo10bobo$1149bo160b3o11b2o$1147b3o144bo14bo$1146bo147b3o12b2o$1146b
2o149bo$1296b2o$1187b2o$1188bo198b2o$1188bobo106b2o88b2o$1115b2o72b2o
106b2o17b2o$1116bo199b2o$1116bobo$1117b2o2b2o37bo193b2o$1121b2o35b3o
15bo9bo167b2o$1157bo18b3o5b3o189b2o$1144b2o11b2o20bo3bo193bo19b2o$
1144b2o32b2o3b2o128b2o62bobo17bo$1313bo19b2o43b2o15bobo$1314b3o15bobo
55bo4b2o$1316bo15bo56bobo$1203b2o105b2o19b2o56bobo$1203b2o105bo67b2o
10bo31b2o$1311b3o63bobo42bo$1313bo63bo42bobo$1115b2o52b2o205b2o42b2o$
1114bobo16b2o34b2o220b2o$1114bo18bobo45b2o208bo13b2o$1113b2o20bo44bo2b
o208b3o10b2o$1129b2o4b2o44b2o4b2o205bo$1129bobo55bobo129b2o93b2o$1131b
o57bo129bo94b2o6b2o$1122b2o7b2o56b2o109b2o15bobo102b2o$1122b2o20b2o33b
2o119b2o15b2o$1145bo34bo107b2o$1142b3o32b3o107bobo120bo$1142bo34bo109b
o121bobo$1286b2o121b2o6b2o$1111bo305bo$1111b3o304b3o$1114bo305bo$1113b
2o4$1299b2o$1298bobo$1133bo132b2o30bo$1131b3o110b2o20b2o29b2o$1130bo
114bo$1130b2o102bo10bobo$1071bo160b3o11b2o$1069b3o144bo14bo$1068bo147b
3o12b2o$1068b2o149bo$1218b2o$1109b2o$1110bo198b2o$1110bobo106b2o88b2o$
1037b2o72b2o106b2o17b2o$1038bo199b2o$1038bobo$1039b2o2b2o37bo193b2o$
1043b2o35b3o15bo9bo167b2o$1079bo18b3o5b3o189b2o$1066b2o11b2o20bo3bo
193bo19b2o$1066b2o32b2o3b2o128b2o62bobo17bo$1235bo19b2o43b2o15bobo$
1236b3o15bobo55bo4b2o$1238bo15bo56bobo$1125b2o105b2o19b2o56bobo$1125b
2o105bo67b2o10bo31b2o$1233b3o63bobo42bo$1235bo63bo42bobo$1037b2o52b2o
205b2o42b2o$1036bobo16b2o34b2o220b2o$1036bo18bobo45b2o208bo13b2o$1035b
2o20bo44bo2bo208b3o10b2o$1051b2o4b2o44b2o4b2o205bo$1051bobo55bobo129b
2o93b2o$1053bo57bo129bo94b2o6b2o$1044b2o7b2o56b2o109b2o15bobo102b2o$
1044b2o20b2o33b2o119b2o15b2o$1067bo34bo107b2o$1064b3o32b3o107bobo120bo
$1064bo34bo109bo121bobo$1208b2o121b2o6b2o$1033bo305bo$1033b3o304b3o$
1036bo305bo$1035b2o4$1221b2o$1220bobo$1055bo132b2o30bo$1053b3o110b2o
20b2o29b2o$1052bo114bo$1052b2o102bo10bobo$993bo160b3o11b2o$991b3o144bo
14bo$990bo147b3o12b2o$990b2o149bo$1140b2o$1031b2o$1032bo198b2o$1032bob
o106b2o88b2o$959b2o72b2o106b2o17b2o$960bo199b2o$960bobo$961b2o2b2o37bo
193b2o$965b2o35b3o15bo9bo167b2o$1001bo18b3o5b3o189b2o$988b2o11b2o20bo
3bo193bo19b2o$988b2o32b2o3b2o128b2o62bobo17bo$1157bo19b2o43b2o15bobo$
1158b3o15bobo55bo4b2o$1160bo15bo56bobo$1047b2o105b2o19b2o56bobo$1047b
2o105bo67b2o10bo31b2o$1155b3o63bobo42bo$1157bo63bo42bobo$959b2o52b2o
205b2o42b2o$958bobo16b2o34b2o220b2o$958bo18bobo45b2o208bo13b2o$957b2o
20bo44bo2bo208b3o10b2o$973b2o4b2o44b2o4b2o205bo$973bobo55bobo129b2o93b
2o$975bo57bo129bo94b2o6b2o$966b2o7b2o56b2o109b2o15bobo102b2o$966b2o20b
2o33b2o119b2o15b2o$989bo34bo107b2o$986b3o32b3o107bobo120bo$986bo34bo
109bo121bobo$1130b2o121b2o6b2o$955bo305bo$955b3o304b3o$958bo305bo$957b
2o4$1143b2o$1142bobo$977bo132b2o30bo$975b3o110b2o20b2o29b2o$974bo114bo
$974b2o102bo10bobo$1076b3o11b2o$1060bo14bo$1060b3o12b2o$1063bo$1062b2o
2$1153b2o$1063b2o88b2o$1063b2o17b2o$954b2o126b2o$954b2o$1120b2o$1120b
2o$1142b2o$1143bo19b2o$1079b2o62bobo17bo$1079bo19b2o43b2o15bobo$1080b
3o15bobo55bo4b2o$1082bo15bo56bobo$969b2o105b2o19b2o56bobo$969b2o105bo
67b2o10bo31b2o$1077b3o63bobo42bo$1079bo63bo42bobo$1142b2o42b2o$1157b2o
$1157bo13b2o$1158b3o10b2o$1160bo$1085b2o93b2o$1085bo94b2o6b2o$1066b2o
15bobo102b2o$1066b2o15b2o$1054b2o$1053bobo120bo$1053bo121bobo$1052b2o
121b2o6b2o$1183bo$1184b3o$1186bo5$1065b2o$1064bobo$1064bo$1024b2o3b2o
32b2o$1022b3obo2b2o$1021bo4bo$1021bo2b2ob4o$1020b2obobobo2bo$1021bobob
obo$1021bobob2o$1022bo2$1035b2o38b2o$1026b2o7bo39b2o$1026b2o5bobo$
1033b2o4$1064b2o$1065bo19b2o$1065bobo17bo$1023b2o41b2o15bobo$1024bo53b
o4b2o$1021b3o53bobo$1021bo55bobo$1066b2o10bo31b2o$1065bobo42bo$1065bo
42bobo$1064b2o42b2o$1079b2o$1079bo13b2o$1080b3o10b2o$1082bo$1102b2o$
1102b2o6b2o$1110b2o3$1098bo$1097bobo$1097b2o6b2o$1105bo$1106b3o$1108bo
15$966bo$966b3o$969bo$968b2o5$999b2o$999bo$997bobo$955bo37b2o2b2o$929b
o9bo15b3o35b2o$929b3o5b3o18bo$932bo3bo20b2o11b2o$931b2o3b2o32b2o4$931b
o$932bo$930b3o2$945b2o52b2o$945b2o34b2o16bobo$933b2o45bobo18bo$932bo2b
o44bo20b2o$927b2o4b2o44b2o4b2o$926bobo55bobo$926bo57bo$925b2o56b2o7b2o
$935b2o33b2o20b2o$935bo34bo$936b3o32b3o$938bo34bo8$924bo$924b3o$927bo$
926b2o54bo$982b3o$985bo$984b2o4$936b2o$929b2o5bobo$929b2o7bo$938b2o2$
925bo$924bobob2o74b2o$924bobobobo73b2o$923b2obobobo2bo$924bo2b2ob4o$
924bo4bo$925b3obo2b2o$927b2o3b2o4$989b2o$989b2o56$1201bo$1201b3o$1204b
o$1203b2o7$1213b2o$1206b2o5bobo$1206b2o7bo$1215b2o2$1202bo$1201bobob2o
$1201bobobobo$1200b2obobobo2bo$1201bo2b2ob4o$1201bo4bo$1202b3obo2b2o$
1204b2o3b2o!

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 30th, 2014, 2:50 pm

There is also an interesting theoretical point to it.

1. To optimize space for this approach we need to make all the "linear" movement snakish. The circulating glider gun should be snakish, the back fire mechanism for the "binary state" should be snakish, and the "hold back mechanism" should be snakish. Thus instead of o(log(N)) binding box, it will require only O(√log(n)) box.

2. It's easy to prove that in therms of O notation, O(√log(n)) is optimal. Because in NxN box there is 2^(NxN) cases of possible life starting points. Se even if each different start option would be a glider gun, it would allow only 2^(NxN) different periods. Thus having arbitrary period N we will expect it to fit a box with at least √log(N) bounding box. So in therms of O notation there could not be an improvement. And we have "build" (a concept) of such guns.

---

Of course the O notation is fuzzy. Having 60 of p60 glider guns is much less elegant that the current approach, and would create a much larger eventual size. But in therms of O notation it would be the same. Probably the current approach except of the "snakishing", can be optimized further as well.

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 30th, 2014, 3:16 pm

simsim314 wrote:OK everything is in place now - except the delaying mechanism which shouldn't be a problem. I think I will make some script that will work for periods of reasonable size, and will have a constant number of "bits", and will "put 0" in the beginning. My only "fear" for now is that the idea is pretty unpractical, and pays off for pretty large periods.
Yes, the point of this would be more to establish an upper bound for gun size for ridiculously large periods, especially prime periods. For any particular period it will always be possible to build a customized smaller gun. But I think a universal gun-builder script would be interesting enough to add to Golly's collection, even so.

In the limit, adding another bit to the binary multiplier will mean adding another constant length to the base loop, and also increasing the maximum size of the reset circuit that deletes and restarts the loop glider -- so that it's still possible to apply any possible timing change to the loop.

Luckily the binary multiplier, the base loop, and the reset-circuit adjuster all have to change size by exactly the same amount as the number of bits goes up -- so the system can be designed so that these three circuits are parallel, and we still have an O(log N) pattern.
simsim314 wrote:Making it compact might be the next important step, which you already started to work on...
Another detail is to make sure the math really works out. The most recent binary multiplier needs 39*8 = 312 more ticks in the base loop for each new bit added, to make sure that the reset signal will get all the way back to the beginning of the period-doubling chain before the next signal from the base loop gets there. When the base period goes up by 312 ticks, can we still hit every possible target gun period, or is there a gap somewhere that we'd have to worry about?

Offhand I don't see a problem. It takes completely different settings to build a period-N gun with B bits or with B+1 bits, because the base period changes -- but both guns will work fine.

The really interesting part would be figuring out how to bend those three circuits around multiple corners, without making a mess of the timing somewhere -- so that bits could be added to the binary multiplier in a spiral instead of a straight line. Then we'd end up with a universal O(sqrt log N) gun, which is the minimum possible O() rating.

-- Heh, more synchronized thinking: I wrote this before I saw your latest posting:
simsim314 wrote:To optimize space for this approach we need to make all the "linear" movement snakish. The circulating glider gun should be snakish, the back fire mechanism for the "binary state" should be snakish, and the "hold back mechanism" should be snakish. Thus instead of o(log(N)) binding box, it will require only O(√log(n)) box.
A "snakish" diamond would be fine too, but I'd prefer a spiral because the center part of the gun could remain unchanged as the number of bits goes up -- only the very end of the bit chain would need any adjustment. With a boustrophedonic design you'd have to change the lengths of the bit chains as more bits were added, to keep the whole thing inside a roughly square bounding box.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 30th, 2014, 3:54 pm

OK we set here three goals :

1. A simple 7 bits glider gun that proves the concept, and gives the feeling of the "math". It's also a cool "demo"
2. Make universal N bit mechanism (I would probably go for 2N + 1 bits - to avoid complications with color).
3. Make "boxi" mechanism (spiral, snake or whatever) that will have "turns" and will be optimized for bounding box.

Generally I don't worry too much about "calculations", and I let the script do all the "dirty" work. I prefer to work harder in scripting (even let the script search for solution) instead of calculating each and every small detail. I also prefer to have some number of constants that I calculated by hand. All this makes many things much simpler. The only time this approach fails is when some "bigger" considerations like color etc. come into the picture. This is for me the tricky part.

By the way of course the "0" state (the minimal period of N bits) is growing with "boxi" approach. But this is not a considerable hold back because we have an "addition factor" in the delaying mechanism for the N-1 bits, that we can extend as we want, so those cases will go to the "N-1" bits "full capacity" case. Of course it will make the glider path a little bit longer, and the maximal "box" for N-1 bits a bit bigger, but it's very small price.
Luckily the binary multiplier, the base loop, and the reset-circuit adjuster all have to change size by exactly the same amount as the number of bits goes up -- so the system can be designed so that these three circuits are parallel
I surely hope it's as simple as you make it sound...

Well back to the scripts...

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 30th, 2014, 5:40 pm

simsim314 wrote:
dvgrn wrote:Luckily the binary multiplier, the base loop, and the reset-circuit adjuster all have to change size by exactly the same amount as the number of bits goes up -- so the system can be designed so that these three circuits are parallel
I surely hope it's as simple as you make it sound...
The only potential problem that I can see is that the current smallest Herschel-based period doubler chain isn't exactly at a 45-degree angle, or even very close. Strange and slightly non-O(sqrt log N) things will happen as the bit chains get longer in our theoretical spiral.

Now I can't decide between

1) building a bigger bit-circuit for the binary multiplier, so it can be extended at exactly 45 degrees, or
2) adding two pairs of Snarks for each bit, one pair to extend base loop and one pair to extend the reset-circuit adjuster.

That last would make the part of the script that adjusts the reset circuit a bit messy, since it would have to figure out how to subtract some number of Snarks and connect up the ends to get exactly the right length of adjuster loop. It seems much easier to just move a single 180-degree reflector component in or out along a diagonal.

So I guess I'm leaning toward #1, for simplicity's sake. Probably it will just require about a 25% bigger base loop to start out, compared to the oblique version... and that's definitely O(1) [as the saying goes.]

When the script has to deal with a "boxy" version of the universal gun, the adjustments will get a little weird again. For example, in marginal cases the script will have to decide whether to lengthen a long straight stretch one more step, or turn a corner and then close the loop after a very short straight stretch. That shouldn't be too much of a headache, though.

There's a similar problem with keeping the base loop exactly in synch with the return time from the binary multiplier reset circuit. If it's not exactly synchronized, then very high-period guns will always wait around a lot of extra time after the reset circuit is done... or if the discrepancy is in the other direction, some timing adjustments will make the gun blow up.

The former isn't such a bad thing, really, but it seems as if it's probably worth designing the corners so that the timing works out exactly.

EDIT:A few more uncertainties: how about this Herschel-based 45-degree binary multiplier?

Code: Select all

#C #1: (Fx77+L156 period doubler+Fx77+standard L156) chain
x = 252, y = 247, rule = B3/S23
237b2o$236bo2bo$237b2o16$248b2o$248bobo$250bo$250b2o7$240b2o$231b2o7b
2o$232bo$232bobo$233b2o$216bo32b2o$214b3o32bo$167b2o21bo22bo33bobo$
167b2o21b3o20b2o32b2o$156b2o35bo$157bo34b2o38bo$157bobo72b3o$158b2o63b
o11bo$223b3o8b2o14bo$226bo22bobo$225b2o23bo2$155b2o25b2o$156bo25b2o$
156bobo$157b2o3$170b2o73b2o$170bobo6b2o32b2o30bo$172bo6bo20b2o11b2o23b
2o6b3o$172b2o6b3o18bo36bo9bo$182bo15b3o38b3o$198bo42bo2$217b2o$218bo$
158b2o8b2o45b3o$159bo8bobo44bo$159b3o8bo$170b2o5$152b2o$151bobo$151bo
25b2o$150b2o25bo$158b2o15bobo$158b2o15b2o12$157b2o$156bobo$156bo$155b
2o5$173b2o$173bobo$175bo$175b2o7$165b2o$156b2o7b2o$157bo$157bobo$158b
2o$141bo32b2o$139b3o32bo$92b2o21bo22bo33bobo$92b2o21b3o20b2o32b2o$81b
2o35bo$82bo34b2o38bo$82bobo72b3o$83b2o63bo11bo$148b3o8b2o14bo$151bo22b
obo$150b2o23bo2$80b2o25b2o$81bo25b2o$81bobo$82b2o3$95b2o73b2o$95bobo6b
2o32b2o30bo$97bo6bo20b2o11b2o23b2o6b3o$97b2o6b3o18bo36bo9bo$107bo15b3o
38b3o$123bo42bo2$142b2o$143bo$83b2o8b2o45b3o$84bo8bobo44bo$84b3o8bo$
95b2o5$77b2o$76bobo$76bo25b2o$75b2o25bo$83b2o15bobo$83b2o15b2o12$82b2o
$81bobo$81bo$80b2o5$98b2o$98bobo$100bo$100b2o7$90b2o$81b2o7b2o$82bo$
82bobo$83b2o$66bo32b2o$64b3o32bo$17b2o21bo22bo33bobo$17b2o21b3o20b2o
32b2o$6b2o35bo$7bo34b2o38bo$7bobo72b3o$8b2o63bo11bo$73b3o8b2o14bo$76bo
22bobo$75b2o23bo2$5b2o25b2o$6bo25b2o$6bobo$7b2o3$20b2o73b2o$20bobo6b2o
32b2o30bo$22bo6bo20b2o11b2o23b2o6b3o$22b2o6b3o18bo36bo9bo$32bo15b3o38b
3o$48bo42bo2$67b2o$68bo$8b2o8b2o45b3o$9bo8bobo44bo$9b3o8bo$20b2o5$2b2o
$bobo$bo25b2o$2o25bo$8b2o15bobo$8b2o15b2o12$7b2o7b3o$6bobo8bo$6bo8b3o$
5b2o5$23b2o$23bobo$25bo$25b2o!
It's quite possible to double the bit density by putting period doublers on both corners --

Code: Select all

#C #2: pure chain of (Fx77 + period doubler L156)
x = 252, y = 247, rule = B3/S23
237b2o$236bo2bo$237b2o16$248b2o$248bobo$250bo$250b2o7$240b2o$231b2o7b
2o$232bo$232bobo$233b2o$216bo$214b3o$167b2o21bo22bo$167b2o21b3o20b2o$
156b2o35bo$157bo34b2o38bo$157bobo72b3o$158b2o63bo11bo$223b3o8b2o$226bo
$225b2o23b2o$250b2o$155b2o25b2o$156bo25b2o$156bobo$157b2o2$224bo$170b
2o52bo$170bobo6b2o32b2o9b3o19b2o$172bo6bo20b2o11b2o11bo11b2o6bo$172b2o
6b3o18bo36bo8b3o$182bo15b3o38b3o7bo$198bo42bo2$217b2o$218bo$158b2o8b2o
45b3o$159bo8bobo44bo$159b3o8bo$170b2o5$152b2o$151bobo$151bo25b2o$150b
2o25bo$158b2o15bobo$158b2o15b2o12$157b2o$156bobo$156bo$155b2o5$173b2o$
173bobo$175bo$175b2o7$165b2o$156b2o7b2o$157bo$157bobo$158b2o$141bo$
139b3o$92b2o21bo22bo$92b2o21b3o20b2o$81b2o35bo$82bo34b2o38bo$82bobo72b
3o$83b2o63bo11bo$148b3o8b2o$151bo$150b2o23b2o$175b2o$80b2o25b2o$81bo
25b2o$81bobo$82b2o2$149bo$95b2o52bo$95bobo6b2o32b2o9b3o19b2o$97bo6bo
20b2o11b2o11bo11b2o6bo$97b2o6b3o18bo36bo8b3o$107bo15b3o38b3o7bo$123bo
42bo2$142b2o$143bo$83b2o8b2o45b3o$84bo8bobo44bo$84b3o8bo$95b2o5$77b2o$
76bobo$76bo25b2o$75b2o25bo$83b2o15bobo$83b2o15b2o12$82b2o$81bobo$81bo$
80b2o5$98b2o$98bobo$100bo$100b2o7$90b2o$81b2o7b2o$82bo$82bobo$83b2o$
66bo$64b3o$17b2o21bo22bo$17b2o21b3o20b2o$6b2o35bo$7bo34b2o38bo$7bobo
72b3o$8b2o63bo11bo$73b3o8b2o$76bo$75b2o23b2o$100b2o$5b2o25b2o$6bo25b2o
$6bobo$7b2o2$74bo$20b2o52bo$20bobo6b2o32b2o9b3o19b2o$22bo6bo20b2o11b2o
11bo11b2o6bo$22b2o6b3o18bo36bo8b3o$32bo15b3o38b3o7bo$48bo42bo2$67b2o$
68bo$8b2o8b2o45b3o$9bo8bobo44bo$9b3o8bo$20b2o5$2b2o$bobo$bo25b2o$2o25b
o$8b2o15bobo$8b2o15b2o12$7b2o7b3o$6bobo8bo$6bo8b3o$5b2o5$23b2o$23bobo$
25bo$25b2o!
-- but then there would have to be two reset circuits, one running down each side of the multiplier -- and the binary encoding would be just slightly trickier, with bits alternating between two lines of eaters pointing in opposite direction.

I'm leaning toward the simpler option #1 again. It's still quite possible, by the way, that there's a much more compact way of doing this using the semi-Snark "two-state machine" as the period multiplier. But offhand I'm not seeing a way to make the reflectors just ahead of the semi-Snarks be 1) compact, 2) transparent, and 3) chainable at exactly 45 degrees. Anybody care to contribute a little bit here?

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 30th, 2014, 7:44 pm

OK a small update - This is kind of 0 level of 7 bit gun (a little bit too much, I gonna get rid of some stuff):

Code: Select all

x = 1609, y = 973, rule = B3/S23
37b2o$37bo$35bobo$35b2o$10b2o$10b2o2$43bo$43b3o$46bo14bo$45b2o12b3o$
58bo$58b2o3$57b2o$38b2o17b2o$38b2o2$2o$2o3$41b2o$21b2o19bo$21bobo15b3o
$23bo15bo$23b2o19b2o$45bo$42b3o$42bo6$35b2o$36bo$36bobo15b2o$37b2o15b
2o12$55b2o$55bobo$57bo$57b2o9$45b2o$45b2o6$56b2o$28b2o5b2o19bo$29bo6bo
17bobo$26b3o7bobo15b2o$26bo10b2o4bo$42bobo$42bobo$43bo10b2o$54bobo$56b
o$56b2o$41b2o$42bo$39b3o$39bo295$1471b2o$1471b2o9$1456b2o$1456b2o2$
1520b2o3b2o$1520b2o2bob3o$1524bo4bo$1520b4ob2o2bo$1417bo102bo2bobobob
2o$1415b3o105bobobobo$1414bo109b2obobo$1414b2o112bo$1476b2o$1476bo37b
2o$1477b3o35bo7b2o$1479bo35bobo5b2o$1383b2o131b2o$1384bo$1384bobo$
1385b2o2b2o37bo$1389b2o35b3o15bo9bo$1425bo18b3o5b3o$1412b2o11b2o20bo3b
o$1412b2o32b2o3b2o73b2o$1526bo$1527b3o$1488bo34bo5bo$1488b3o32b3o$
1491bo34bo$1468b2o20b2o33b2o$1468b2o7b2o56b2o$1383b2o52b2o38bo57bo$
1382bobo16b2o34b2o36bobo55bobo$1382bo18bobo45b2o24b2o4b2o44b2o4b2o$
1381b2o20bo44bo2bo7b2o20bo44bo2bo$1397b2o4b2o44b2o4b2o3bo18bobo45b2o$
1397bobo55bobo2bobo16b2o34b2o$1399bo57bo3b2o52b2o$1390b2o7b2o56b2o$
1390b2o20b2o33b2o$1413bo34bo$1410b3o32b3o$1410bo34bo2$1379bo$1379b3o
108b2o32b2o3b2o$1382bo107b2o11b2o20bo3bo$1381b2o120bo18b3o5b3o$1467b2o
35b3o15bo9bo$1463b2o2b2o37bo$1462bobo$1462bo23b2o$1461b2o23bo$1401bo
85b3o44b2o$1399b3o87bo22b2o20b2o$1398bo114bo$1398b2o102bo10bobo$1339bo
160b3o11b2o$1337b3o144bo14bo$1336bo147b3o12b2o$1336b2o149bo$1486b2o$
1377b2o$1378bo$1378bobo106b2o$1305b2o72b2o106b2o17b2o$1306bo199b2o$
1306bobo$1307b2o2b2o37bo193b2o$1311b2o35b3o15bo9bo167b2o$1347bo18b3o5b
3o$1334b2o11b2o20bo3bo$1334b2o32b2o3b2o128b2o94bo$1503bo19b2o72b3o$
1504b3o15bobo71bo$1506bo15bo73b2o$1393b2o105b2o19b2o$1393b2o105bo$
1501b3o75bo24b2ob2o$1503bo57b2o14b5o23bob2o$1305b2o52b2o201bo13bo5bo
22bo$1304bobo16b2o34b2o201bobo12b3o2bo14b2o4b3o$1304bo18bobo45b2o190b
2o15bob2o13b2o3bo3b2o$1303b2o20bo44bo2bo203b4o2bo18b4o2bo$1319b2o4b2o
44b2o4b2o193b2o3bo3b2o5b2o15bob2o$1319bobo55bobo129b2o61b2o4b3o6bobo
12b3o2bo$1321bo57bo129bo70bo6bo13bo5bo$1312b2o7b2o56b2o109b2o15bobo70b
ob2o2b2o14b5o$1312b2o20b2o33b2o119b2o15b2o70b2ob2o20bo$1335bo34bo107b
2o$1332b3o32b3o107bobo$1332bo34bo109bo93b2o$1476b2o93bo$1301bo270b3o$
1301b3o270bo$1304bo$1303b2o4$1489b2o$1488bobo$1323bo132b2o30bo$1321b3o
110b2o20b2o29b2o$1320bo114bo$1320b2o102bo10bobo$1261bo160b3o11b2o$
1259b3o144bo14bo$1258bo147b3o12b2o$1258b2o149bo$1408b2o$1299b2o$1300bo
198b2o$1300bobo106b2o88b2o$1227b2o72b2o106b2o17b2o$1228bo199b2o$1228bo
bo$1229b2o2b2o37bo193b2o$1233b2o35b3o15bo9bo167b2o$1269bo18b3o5b3o189b
2o$1256b2o11b2o20bo3bo193bo19b2o$1256b2o32b2o3b2o128b2o62bobo17bo$
1425bo19b2o43b2o15bobo$1426b3o15bobo55bo4b2o$1428bo15bo56bobo$1315b2o
105b2o19b2o56bobo$1315b2o105bo67b2o10bo31b2o$1423b3o63bobo42bo$1425bo
63bo42bobo$1227b2o52b2o205b2o42b2o$1226bobo16b2o34b2o220b2o$1226bo18bo
bo45b2o208bo13b2o$1225b2o20bo44bo2bo208b3o10b2o$1241b2o4b2o44b2o4b2o
205bo$1241bobo55bobo129b2o93b2o$1243bo57bo129bo94b2o6b2o$1234b2o7b2o
56b2o109b2o15bobo102b2o$1234b2o20b2o33b2o119b2o15b2o$1257bo34bo107b2o$
1254b3o32b3o107bobo120bo$1254bo34bo109bo121bobo$1398b2o121b2o6b2o$
1223bo305bo$1223b3o304b3o$1226bo295bo9bo$1225b2o295b3o$1525bo$1524b2o$
1539b2o$1411b2o126bo$1410bobo124bobo$1245bo132b2o30bo115bo10b2o$1243b
3o110b2o20b2o29b2o96bo17bobo$1242bo114bo149b3o15bobo$1242b2o102bo10bob
o150bo9b2o4bo$1183bo160b3o11b2o149b2o8bobo15b2o$1181b3o144bo14bo175bo
17bobo$1180bo147b3o12b2o173b2o19bo$1180b2o149bo207b2o$1330b2o$1221b2o$
1222bo198b2o$1222bobo106b2o88b2o$1149b2o72b2o106b2o17b2o$1150bo199b2o
176b2o$1150bobo375b2o$1151b2o2b2o37bo193b2o$1155b2o35b3o15bo9bo167b2o$
1191bo18b3o5b3o189b2o$1178b2o11b2o20bo3bo193bo19b2o$1178b2o32b2o3b2o
128b2o62bobo17bo$1347bo19b2o43b2o15bobo$1348b3o15bobo55bo4b2o$1350bo
15bo56bobo$1237b2o105b2o19b2o56bobo114b2o$1237b2o105bo67b2o10bo31b2o
82bo$1345b3o63bobo42bo81bobo$1347bo63bo42bobo81b2o$1149b2o52b2o205b2o
42b2o$1148bobo16b2o34b2o220b2o$1148bo18bobo45b2o208bo13b2o$1147b2o20bo
44bo2bo208b3o10b2o$1163b2o4b2o44b2o4b2o205bo$1163bobo55bobo129b2o93b2o
$1165bo57bo129bo94b2o6b2o$1156b2o7b2o56b2o109b2o15bobo102b2o93b2o$
1156b2o20b2o33b2o119b2o15b2o198bo$1179bo34bo107b2o225bobo$1176b3o32b3o
107bobo120bo104b2o$1176bo34bo109bo121bobo74b2o15b2o$1320b2o121b2o6b2o
66bobo15b2o$1145bo305bo67bo$1145b3o304b3o63b2o$1148bo305bo$1147b2o4$
1333b2o190bo$1332bobo190b3o$1167bo132b2o30bo195bo$1165b3o110b2o20b2o
29b2o173b2o19b2o$1164bo114bo226bo15bo$1164b2o102bo10bobo222bobo15b3o$
1105bo160b3o11b2o222b2o19bo$1103b3o144bo14bo258b2o$1102bo147b3o12b2o$
1102b2o149bo$1252b2o229b2o$1143b2o338b2o$1144bo198b2o$1144bobo106b2o
88b2o176b2o$1071b2o72b2o106b2o17b2o247b2o17b2o$1072bo199b2o266b2o$
1072bobo$1073b2o2b2o37bo193b2o$1077b2o35b3o15bo9bo167b2o229b2o$1113bo
18b3o5b3o189b2o207bo$1100b2o11b2o20bo3bo193bo19b2o173b2o12b3o$1100b2o
32b2o3b2o128b2o62bobo17bo175bo14bo$1269bo19b2o43b2o15bobo172b3o$1270b
3o15bobo55bo4b2o173bo$1272bo15bo56bobo$1159b2o105b2o19b2o56bobo145b2o$
1159b2o105bo67b2o10bo31b2o113b2o$1267b3o63bobo42bo$1269bo63bo42bobo$
1071b2o52b2o205b2o42b2o157bo$1070bobo16b2o34b2o220b2o184b3o$1070bo18bo
bo45b2o208bo13b2o169bo$1069b2o20bo44bo2bo208b3o10b2o169b2o$1085b2o4b2o
44b2o4b2o205bo166b2o$1085bobo55bobo129b2o93b2o146bo$1087bo57bo129bo94b
2o6b2o138bobo$1078b2o7b2o56b2o109b2o15bobo102b2o139b2o10bo$1078b2o20b
2o33b2o119b2o15b2o255bobo17bo$1101bo34bo107b2o284bobo15b3o$1098b3o32b
3o107bobo120bo164bo4b2o9bo$1098bo34bo109bo121bobo151b2o15bobo8b2o$
1242b2o121b2o6b2o143bobo17bo$1067bo305bo144bo19b2o$1067b3o304b3o140b2o
$1070bo305bo$1069b2o4$1255b2o271b2o$1254bobo271b2o$1089bo132b2o30bo$
1087b3o110b2o20b2o29b2o$1086bo114bo$1086b2o102bo10bobo$1027bo160b3o11b
2o$1025b3o144bo14bo$1024bo147b3o12b2o$1024b2o149bo$1174b2o340b2o$1065b
2o450bo$1066bo198b2o250bobo$1066bobo106b2o88b2o251b2o$993b2o72b2o106b
2o17b2o$994bo199b2o$994bobo$995b2o2b2o37bo193b2o$999b2o35b3o15bo9bo
167b2o$1035bo18b3o5b3o189b2o$1022b2o11b2o20bo3bo193bo19b2o$1022b2o32b
2o3b2o128b2o62bobo17bo229b2o$1191bo19b2o43b2o15bobo230bo$1192b3o15bobo
55bo4b2o231bobo$1194bo15bo56bobo237b2o$1081b2o105b2o19b2o56bobo249b2o
15b2o$1081b2o105bo67b2o10bo31b2o217b2o15bobo$1189b3o63bobo42bo237bo$
1191bo63bo42bobo237b2o$993b2o52b2o205b2o42b2o91b2o$992bobo16b2o34b2o
220b2o120b2o$992bo18bobo45b2o208bo13b2o$991b2o20bo44bo2bo208b3o10b2o$
1007b2o4b2o44b2o4b2o205bo$1007bobo55bobo129b2o93b2o238bo$1009bo57bo
129bo94b2o6b2o228b3o$1000b2o7b2o56b2o109b2o15bobo102b2o227bo$1000b2o
20b2o33b2o119b2o15b2o332b2o19b2o$1023bo34bo107b2o367bo15bo$1020b3o32b
3o107bobo120bo87b2o155b3o15bobo$1020bo34bo109bo121bobo86b2o154bo19b2o$
1164b2o121b2o6b2o235b2o$989bo305bo$989b3o304b3o$992bo305bo274b2o$991b
2o580b2o2$1535b2o$1516b2o17b2o$1177b2o317bo19b2o$1176bobo217b2o96b3o$
1011bo132b2o30bo219bo96bo$1009b3o110b2o20b2o29b2o220b3o93b2o20b2o$
1008bo114bo275bo47b2o67bo$1008b2o102bo10bobo321bo65b3o12b2o$949bo160b
3o11b2o319bobo65bo14bo$947b3o144bo14bo335b2o82b3o$946bo147b3o12b2o351b
2o67bo$946b2o149bo365bo$1096b2o365bobo97b2o$987b2o475b2o2b2o37bo55b2o$
988bo198b2o279b2o35b3o15bo9bo$988bobo106b2o88b2o315bo18b3o5b3o$915b2o
72b2o106b2o17b2o242bo130b2o11b2o20bo3bo$916bo199b2o242b3o45bo34bo47b2o
32b2o3b2o$916bobo444bo44b3o32b3o$917b2o2b2o37bo193b2o206b2o47bo34bo$
921b2o35b3o15bo9bo167b2o221b2o9b2o20b2o33b2o$957bo18b3o5b3o189b2o199bo
10b2o7b2o56b2o$944b2o11b2o20bo3bo193bo19b2o176bobo19bo57bo$944b2o32b2o
3b2o128b2o62bobo17bo166bo10b2o18bobo55bobo$1113bo19b2o43b2o15bobo147bo
17bobo29b2o4b2o44b2o4b2o$1114b3o15bobo55bo4b2o148b3o15bobo13b2o20bo44b
o2bo12b2o52b2o$1116bo15bo56bobo156bo9b2o4bo15bo18bobo45b2o12bobo16b2o
34b2o$1003b2o105b2o19b2o56bobo155b2o8bobo15b2o3bobo16b2o34b2o24bo18bob
o45b2o$1003b2o105bo67b2o10bo31b2o133bo17bobo3b2o52b2o23b2o20bo44bo2bo$
1111b3o63bobo42bo133b2o19bo98b2o4b2o44b2o4b2o$1113bo63bo42bobo154b2o
97bobo55bobo$915b2o52b2o205b2o42b2o256bo57bo$914bobo16b2o34b2o220b2o
276b2o7b2o56b2o$914bo18bobo45b2o208bo13b2o262b2o20b2o33b2o$913b2o20bo
44bo2bo208b3o10b2o285bo34bo$929b2o4b2o44b2o4b2o205bo294b3o32b3o$929bob
o55bobo129b2o93b2o150b2o42b2o32b2o3b2o38bo34bo$931bo57bo129bo94b2o6b2o
142b2o42b2o11b2o20bo3bo$922b2o7b2o56b2o109b2o15bobo102b2o199bo18b3o5b
3o$922b2o20b2o33b2o119b2o15b2o268b2o35b3o15bo9bo$945bo34bo107b2o293b2o
2b2o37bo$942b3o32b3o107bobo120bo171bobo$942bo34bo109bo121bobo170bo$
1086b2o121b2o6b2o162b2o$911bo305bo308b2o$911b3o304b3o305bobo$914bo305b
o157b2o148bo$913b2o463bo101bo47b2o$1376bobo33b2o64b3o$1376b2o34bo64bo$
1413b3o61b2o$1099b2o314bo$1098bobo$933bo132b2o30bo$931b3o110b2o20b2o
29b2o$930bo114bo$930b2o102bo10bobo$1032b3o11b2o341b2o$1016bo14bo357bo$
1016b3o12b2o354bobo$1019bo367b2o68b2o$1018b2o338b2o15b2o80b2o$909b2o
446bobo15b2o$910bo198b2o246bo$910bobo106b2o88b2o245b2o$911b2o106b2o17b
2o$1038b2o2$1076b2o$1076b2o$1098b2o263bo108b2o$1099bo19b2o242b3o106b2o
$1035b2o62bobo17bo246bo$1035bo19b2o43b2o15bobo224b2o19b2o$1036b3o15bob
o55bo4b2o225bo15bo$1038bo15bo56bobo228bobo15b3o$925b2o105b2o19b2o56bob
o228b2o19bo$925b2o105bo67b2o10bo31b2o216b2o$1033b3o63bobo42bo$1035bo
63bo42bobo$1098b2o42b2o177b2o$1113b2o206b2o$1113bo13b2o$1114b3o10b2o
230b2o$1116bo242b2o17b2o$1041b2o93b2o240b2o$1041bo94b2o6b2o$1022b2o15b
obo102b2o$1022b2o15b2o338b2o$1010b2o367bo$1009bobo120bo233b2o12b3o$
1009bo121bobo233bo14bo$1008b2o121b2o6b2o223b3o$1139bo224bo$1140b3o$
1142bo188b2o$1331b2o3$1373bo$1021b2o348b3o$1020bobo347bo$1020bo349b2o$
1019b2o334b2o$1356bo$1356bobo$1357b2o10bo$1368bobo17bo$1368bobo15b3o$
1369bo4b2o9bo$1357b2o15bobo8b2o$1356bobo17bo$1031b2o323bo19b2o$1031b2o
322b2o6$1020b2o344b2o$1021bo19b2o323b2o$1021bobo17bo$1022b2o15bobo$
1034bo4b2o$1033bobo$1033bobo$1022b2o10bo31b2o$1021bobo42bo$1021bo42bob
o$1020b2o42b2o288b2o$1035b2o318bo$1035bo13b2o304bobo$1036b3o10b2o305b
2o$1038bo$1058b2o$1058b2o6b2o$1066b2o2$945b2o3b2o$943b3obo2b2o102bo$
942bo4bo105bobo287b2o$942bo2b2ob4o101b2o6b2o281bo$941b2obobobo2bo109bo
282bobo$942bobobobo113b3o280b2o$942bobob2o116bo292b2o15b2o$943bo413b2o
15bobo$1376bo$956b2o418b2o$947b2o7bo272b2o$947b2o5bobo272b2o$954b2o3$
1370bo$1368b3o$1367bo$1367b2o19b2o$944b2o427bo15bo$945bo268b2o155b3o
15bobo$922bo19b3o269b2o154bo19b2o$922b3o17bo427b2o$925bo$924b2o$1411b
2o$1411b2o2$1373b2o$955b2o397b2o17b2o$955bo378bo19b2o$953bobo278b2o96b
3o$911bo37b2o2b2o279bo96bo$885bo9bo15b3o35b2o284b3o93b2o20b2o$885b3o5b
3o18bo253bo68bo47b2o67bo$888bo3bo20b2o11b2o238b3o116bo65b3o12b2o$887b
2o3b2o32b2o237bo117bobo65bo14bo$1165b2o116b2o82b3o$1300b2o67bo$1206b2o
93bo$1207bo93bobo97b2o$1207bobo92b2o2b2o37bo55b2o$1134b2o72b2o96b2o35b
3o15bo9bo$1135bo206bo18b3o5b3o$901b2o52b2o178bobo191b2o11b2o20bo3bo$
901b2o34b2o16bobo178b2o2b2o37bo66bo34bo47b2o32b2o3b2o$889b2o45bobo18bo
182b2o35b3o15bo9bo40b3o32b3o$888bo2bo44bo20b2o217bo18b3o5b3o43bo34bo$
883b2o4b2o44b2o4b2o220b2o11b2o20bo3bo23b2o20b2o33b2o$882bobo55bobo220b
2o32b2o3b2o22b2o7b2o56b2o$882bo57bo294bo57bo$881b2o56b2o7b2o250bo32bob
o55bobo$891b2o33b2o20b2o249bobo31b2o4b2o44b2o4b2o$891bo34bo272bobo15b
2o20bo44bo2bo12b2o52b2o$892b3o32b3o270bo17bo18bobo45b2o12bobo16b2o34b
2o$894bo34bo288bobo16b2o34b2o24bo18bobo45b2o$1219b2o52b2o23b2o20bo44bo
2bo$1134b2o52b2o124b2o4b2o44b2o4b2o$1133bobo16b2o34b2o124bobo55bobo$
1133bo18bobo45b2o114bo57bo$1132b2o20bo37b2o5bo2bo104b2o7b2o56b2o$1148b
2o4b2o35bobo6b2o4b2o99b2o20b2o33b2o$1148bobo42bo12bobo121bo34bo$1150bo
57bo118b3o32b3o$1141b2o7b2o56b2o38b2o32b2o3b2o38bo34bo$1141b2o20b2o33b
2o48b2o11b2o20bo3bo$938bo225bo34bo61bo18b3o5b3o$938b3o220b3o32b3o26b2o
35b3o15bo9bo$941bo219bo34bo24b2o2b2o37bo$940b2o278bobo$1130bo89bo$
1130b3o86b2o$871bo261bo230b2o$871b3o258b2o61b2o167bobo$874bo320bobo
168bo$873b2o322bo120bo47b2o$1197b2o51b2o64b3o$1250bo64bo$1251b3o61b2o$
960b2o190bo100bo$960b2o188b3o$1149bo$883b2o264b2o$876b2o5bobo204bo$
876b2o7bo202b3o$885b2o200bo$1087b2o$872bo$871bobob2o251b2o165b2o$871bo
bobobo67b2o182bo165b2o$870b2obobobo2bo64b2o182bobo$871bo2b2ob4o175b2o
72b2o$871bo4bo180bo$872b3obo2b2o176bobo$874b2o3b2o177b2o2b2o37bo$1062b
2o35b3o15bo9bo$1098bo18b3o5b3o$1085b2o11b2o20bo3bo$1085b2o6b2o24b2o3b
2o184b2o$1092b3ob2o212b2o$1091b2o3b2o24bo$1090bo2bobo25bobo$1089b2o2b
3o25bobo20b2o$1090b2obobo26bo21b2o$1091bo$1101bo$1056b2o44bo7b2o$1055b
obo16b2o24b3o7b2o$1055bo18bobo45b2o$1054b2o20bo44bo2bo$1070b2o4b2o44b
2o4b2o$1070bobo55bobo$1072bo57bo$1063b2o7b2o56b2o$1063b2o20b2o33b2o$
1086bo34bo$1083b3o32b3o$1083bo34bo11$1074bo$1072b3o$1071bo$1071b2o10$
1051b2o$1051b2o9$1066b2o$1066b2o!
My main issue with the "trambone slide" method was, that the reflector that switches the parity of glider per generation, also switches it's color. And because I have a loop in the end, so I need to adjust color accordingly. So I can't simply put even or odd of this reflectors as I wish... I end up with color switcher as well, no way around it that I see. Not a big deal...but after all the calculation, it's "0" will be around 12-14K. A bit more than I was hoping for (less than 10K).

Now I need to do some "computation", take some measurements, and twick it a bit... hopefully the 7 bit gun will work soon.

If there is a recipe for mod 8 switcher it would help, if it's much smaller than this huge 8 reflector barricade.

Another look convinced me this trombone is definitely wrong, I gonna take a look at some Herschel tricks to fix it. Just 8 time from Herschel to glider and back - this is wrong! There should be some direct simple Herschel "trombone" that maybe not exactly gives all the +-[0-7], but mod 8 definitely, and it's all I need.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 30th, 2014, 9:21 pm

OK this Herschel stuff does look nice...and the back shoot should be simple, due to the fact that the "0" represnted by block and can be much easily shot down by similar back shoot track but without any multipliers inside it.

Yes the 45 degree issue is annoying, adding two Snarks is an option but... it's just become more and more "heavy". I do like the direction of the previous

Here is a back shoot using Snarks. Probably can be done for the more packed case as well.

Code: Select all

x = 422, y = 372, rule = B3/S23
40$296b2o$297bo$297bobo$298b2o5$316b2o$305b3o8bo$305bo8bobo$304b3o7b2o
12$296b2o15b2o$295bobo15b2o$295bo25b2o$294b2o25bo$319bobo$319b2o5$301b
2o$302bo$257bo44bobo$255b3o45b2o$254bo$254b2o2$231bo42bo$231b3o38b3o
15bo$224bo9bo36bo18b3o6b2o$224b3o6b2o23b2o11b2o20bo6bo$227bo30b2o32b2o
6bobo$226b2o73b2o3$314b2o$314bobo$289b2o25bo$289b2o25b2o2$222bo23b2o$
221bobo22bo$222bo14b2o8b3o$237bo11bo$238b3o55b2o$240bo38b2o16bo$279bo
14b3o6bo$224b2o32b2o20b3o11bo7bobo62b2o$223bobo33bo22bo20bo62bo2bo$
223bo32b3o75bo32b2o$222b2o32bo75b3o$238b2o91bo$238bobo90b2o$240bo$231b
2o7b2o$231b2o106b2ob2o$340bob2o$340bo$332b2o4b3o$332b2o3bo3b2o$337b4o
2bo$323b2o15bob2o$221b2o99bobo12b3o2bo$222bo99bo13bo5bo$222bobo96b2o
14b5o$223b2o114bo38b2o$378bobo$380bo$380b2o2$241b2o$241bo$239bobo$239b
2o2$370b2o$361b2o7b2o$362bo$362bobo$363b2o$346bo32b2o$344b3o32bo$297b
2o21bo22bo33bobo$297b2o21b3o20b2o32b2o$286b2o35bo$221b2o15b2o47bo34b2o
38bo$220bobo15b2o47bobo72b3o$220bo25b2o40b2o63bo11bo$219b2o25bo106b3o
8b2o14bo$244bobo109bo22bobo$244b2o109b2o23bo2$285b2o12b2o11b2o$286bo
12b2o11b2o$286bobo$226b2o59b2o$227bo$182bo44bobo$180b3o45b2o70b2o73b2o
$179bo120bobo6b2o32b2o30bo$179b2o121bo6bo20b2o11b2o23b2o6b3o$302b2o6b
3o18bo36bo9bo$156bo42bo112bo15b3o38b3o$156b3o38b3o15bo112bo42bo$149bo
9bo36bo18b3o6b2o$149b3o6b2o23b2o11b2o20bo6bo121b2o$152bo30b2o32b2o6bob
o120bo$151b2o73b2o70b2o45b3o$298bobo44bo$300bo$239b2o59b2o$239bobo$
214b2o25bo$214b2o25b2o2$147bo23b2o109b2o$146bobo22bo109bobo$147bo14b2o
8b3o106bo25b2o$162bo11bo105b2o25bo$163b3o55b2o65b2o15bobo$165bo38b2o
16bo65b2o15b2o$204bo14b3o6bo$149b2o32b2o20b3o11bo7bobo$148bobo33bo22bo
20bo$148bo32b3o75bo$147b2o32bo75b3o$163b2o91bo$163bobo90b2o$165bo$156b
2o7b2o$156b2o106b2ob2o$265bob2o$265bo21b2o$257b2o4b3o20bobo$257b2o3bo
3b2o18bo$262b4o2bo16b2o$248b2o15bob2o$146b2o99bobo12b3o2bo$147bo99bo
13bo5bo$147bobo96b2o14b5o$148b2o114bo38b2o$303bobo$305bo$305b2o2$166b
2o$166bo$164bobo$164b2o2$295b2o$286b2o7b2o$287bo$287bobo$288b2o$271bo
32b2o$269b3o32bo$222b2o21bo22bo33bobo$222b2o21b3o20b2o32b2o$211b2o35bo
$146b2o15b2o47bo34b2o38bo$145bobo15b2o47bobo72b3o$145bo25b2o40b2o63bo
11bo$144b2o25bo106b3o8b2o14bo$169bobo109bo22bobo$169b2o109b2o23bo2$
210b2o12b2o11b2o$211bo12b2o11b2o$211bobo$151b2o59b2o$152bo$107bo44bobo
$105b3o45b2o70b2o73b2o$104bo120bobo6b2o32b2o30bo$104b2o121bo6bo20b2o
11b2o23b2o6b3o$227b2o6b3o18bo36bo9bo$81bo42bo112bo15b3o38b3o$81b3o38b
3o15bo112bo42bo$74bo9bo36bo18b3o6b2o$74b3o6b2o23b2o11b2o20bo6bo121b2o$
77bo30b2o32b2o6bobo120bo$76b2o73b2o70b2o45b3o$223bobo44bo$225bo$164b2o
59b2o$164bobo$139b2o25bo$139b2o25b2o2$72bo23b2o109b2o$71bobo22bo109bob
o$72bo14b2o8b3o106bo25b2o$87bo11bo105b2o25bo$88b3o55b2o65b2o15bobo$90b
o38b2o16bo65b2o15b2o$129bo14b3o6bo$74b2o32b2o20b3o11bo7bobo$73bobo33bo
22bo20bo$73bo32b3o75bo$72b2o32bo75b3o$88b2o91bo$88bobo90b2o$90bo$81b2o
7b2o$81b2o106b2ob2o$190bob2o$190bo21b2o$182b2o4b3o20bobo$182b2o3bo3b2o
18bo$187b4o2bo16b2o$173b2o15bob2o$71b2o99bobo12b3o2bo$72bo99bo13bo5bo$
72bobo96b2o14b5o$73b2o114bo38b2o$228bobo$230bo$230b2o7$220b2o$211b2o7b
2o$212bo$212bobo$213b2o$196bo32b2o$84b2o108b3o32bo$83bo2bo60b2o21bo22b
o33bobo$84b2o61b2o21b3o20b2o32b2o$136b2o35bo$137bo34b2o38bo$137bobo72b
3o$138b2o63bo11bo$203b3o8b2o14bo$206bo22bobo$205b2o23bo2$135b2o12b2o
11b2o$136bo12b2o11b2o$136bobo$137b2o3$150b2o73b2o$150bobo6b2o32b2o30bo
$152bo6bo20b2o11b2o23b2o6b3o$152b2o6b3o18bo36bo9bo$162bo15b3o38b3o$
178bo42bo2$197b2o$198bo$148b2o45b3o$148bobo44bo$150bo$150b2o5$132b2o$
131bobo$131bo25b2o$130b2o25bo$138b2o15bobo$138b2o15b2o12$137b2o$136bob
o$136bo$135b2o5$153b2o$153bobo$155bo$155b2o!
The main issue I have encounter until now is not the timing calculation, this I can handle, it's more the back shoot the destroys the glider. I can move the circulating glider exactly by steps of 8, but when adding two bits, there is no promise that the coming back shoot will also be a multiplication of 8. It's obvious it would be a multiplication of 2 but 8 it's not obvious. It's manageable, I just need to find the configuration for 2,4,6,8 bits - and then it repeats of course.

I think I do prefer this 45 degree, but i wonder how we would bend them... although it's pretty compact structure and feels like "nice to bend"...

I see you really worry about calculating the exact timing. I use scripts that this type of calculation are managed inside them, without any "hard working arithmetic", in worst case I simply run a loop that calculates the timing and find a solution. I don't get to "glider interaction level" this is why I'm a bit afraid of this back firing glider that destroys another glider. But except of it I don't worry so much, only the main "big design", color issues, and performance as well.

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 30th, 2014, 9:53 pm

simsim314 wrote:OK a small update - This is kind of 0 level of 7 bit gun (a little bit too much, I gonna get rid of some stuff)
Looks good so far. Can I convince you to switch over to an exact-diagonal design before you have too much invested in the current Silver-reflector-filled oblique version? That was just supposed to be a proof-of-concept -- it seems as if a diagonal model will work out better in the long run. (?)

Code: Select all

#C Fx77+L156[period-doubler] binary multiplier gun, v 0.1
#C The base loop is the doubled glider loop in the lower right (temporary).
#C The binary multiplier is the double zigzag running up the middle.
#C The timing adjustment will be in the upper left --
#C    not implemented yet; it will replace the simple glider lane there.
x = 769, y = 784, rule = B3/S23
610b2o3b2o$608b3obo2b2o$607bo4bo$607bo2b2ob4o$606b2obobobo2bo$607bobob
obo$607bobob2o$608bo2$621b2o$612b2o7bo$612b2o5bobo$619b2o7$609b2o$610b
o$607b3o$607bo16$646bo$628b2o14b5o$629bo13bo5bo$629bobo12b3o2bo$630b2o
15bob2o$644b4o2bo$639b2o3bo3b2o$639b2o4b3o$647bo$647bob2o$646b2ob2o3$
638b2o$638bo$639b3o$641bo2$636bo$596b2o38b3o$597bo41bo14bo$597bobo38b
2o12b3o$598b2o2b2o47bo$602b2o47b2o3$650b2o$631b2o17b2o$631b2o6$596b2o
36b2o$595bobo16b2o19bo$595bo18bobo15b3o$594b2o20bo15bo$610b2o4b2o19b2o
$610bobo25bo$612bo22b3o$603b2o7b2o21bo$603b2o7$593b2o$594bo$594bobo$
595b2o$611bo$609b3o$608bo$608b2o28b2o$637bobo$637bo29b2o$636b2o29bobo$
576b2o91bo$553bo23bo64b2o25b2o$551b3o23bobo61bobo4b2o$550bo27b2o61bo7b
o$550b2o88b2o4b3o$646bo$527bo42bo83b2o$527b3o38b3o44b2o36bobo$520bo9bo
36bo47b2o36bo$520b3o6b2o23b2o11b2o83b2o$523bo30b2o$522b2o$610b2o$610b
2o$614b2o54b2o$614b2o54bobo$672bo$672b2o$579b2o27b2o$518bo23b2o35b2o
11b2o14b2o$517bobo22bo49bo$518bo14b2o8b3o29bobo15b3o$533bo11bo27bo5bo
15bo$534b3o$536bo35bo3bo3bo81b2o$575bo77b2o7b2o$520b2o32b2o16bo3b3o2bo
72bo$519bobo33bo22bo75bobo$519bo32b3o18bo7bo73b2o$518b2o32bo22bo62bo
32b2o$534b2o41bobo56b3o32bo$534bobo52b2o21bo22bo33bobo$536bo52b2o21b3o
20b2o32b2o$527b2o7b2o40b2o35bo$527b2o50bo34b2o38bo$579bobo72b3o$580b2o
63bo11bo$645b3o8b2o14bo$648bo22bobo$647b2o23bo2$517b2o58b2o25b2o$518bo
59bo25b2o$518bobo57bobo$519b2o58b2o3$592b2o$592bobo6b2o32b2o$537b2o55b
o6bo20b2o11b2o23b2o23bo$537bo56b2o6b3o18bo36bo22b3o$535bobo66bo15b3o
38b3o18bo$535b2o83bo42bo18b2o2$639b2o$640bo49b2ob2o$590b2o45b3o51bob2o
$590bobo44bo53bo$592bo90b2o4b3o$592b2o89b2o3bo3b2o$688b4o2bo$674b2o15b
ob2o$673bobo12b3o2bo$673bo13bo5bo$517b2o15b2o38b2o96b2o14b5o$516bobo
15b2o37bobo114bo$516bo25b2o29bo25b2o129b2o$515b2o25bo29b2o25bo131bo$
540bobo37b2o15bobo131bobo$540b2o38b2o15b2o133b2o$757b2o$757b2o2$725bo$
522b2o199b3o$523bo183bo14bo$478bo44bobo181b3o12b2o$476b3o45b2o184bo$
475bo233b2o$475b2o2$452bo42bo83b2o129b2o$452b3o38b3o15bo66bobo129b2o
17b2o$445bo9bo36bo18b3o6b2o56bo150b2o$445b3o6b2o23b2o11b2o20bo6bo55b2o
$448bo30b2o32b2o6bobo243b2o$447b2o73b2o243b2o3$535b2o58b2o129b2o$535bo
bo57bobo128bo19b2o$510b2o25bo59bo40bo88b3o15bobo$510b2o25b2o58b2o39b3o
88bo15bo$641bo81b2o19b2o$443bo23b2o171b2o81bo$442bobo22bo256b3o$443bo
14b2o8b3o29bobo30b2o191bo$458bo11bo27bo5bo28bobo93b2ob2o$459b3o55b2o
16bo93b2obo$461bo35bo3bo3bo12bo16b2o50b2o43bo$500bo14b3o6bo53b2o7b2o
43b3o4b2o$445b2o32b2o16bo3b3o2bo8bo7bobo53bo50b2o3bo3b2o$444bobo33bo
22bo20bo54bobo47bo2b4o96b2o$444bo32b3o18bo7bo73b2o47b2obo15b2o82bo$
443b2o32bo22bo62bo32b2o32bo2b3o12bobo62b2o15bobo$459b2o41bobo56b3o32bo
33bo5bo13bo62b2o15b2o$459bobo52b2o21bo22bo33bobo34b5o14b2o$461bo52b2o
21b3o20b2o32b2o37bo$452b2o7b2o40b2o35bo$452b2o50bo34b2o38bo$504bobo72b
3o$505b2o63bo11bo$570b3o8b2o14bo$573bo22bobo$572b2o23bo2$442b2o58b2o
25b2o$443bo59bo25b2o181b2o$443bobo57bobo205bobo$444b2o58b2o205bo$710b
2o2$517b2o73b2o$517bobo6b2o32b2o30bo$462b2o55bo6bo20b2o11b2o23b2o6b3o$
462bo56b2o6b3o18bo36bo9bo$460bobo66bo15b3o38b3o82b2o$460b2o83bo42bo82b
2o2$564b2o156b2o$565bo156b2o$515b2o45b3o93b2o$515bobo44bo96bo$517bo
141bobo$517b2o141b2o2$711b2o$712bo19b2o5b2o$678b2o32bobo17bo6bo$442b2o
15b2o38b2o177b2o15bo17b2o15bobo7b3o$441bobo15b2o37bobo192b3o29bo4b2o
10bo$441bo25b2o29bo25b2o134b2o30bo31bobo$440b2o25bo29b2o25bo134bobo30b
2o30bobo$465bobo37b2o15bobo134bo53b2o10bo$465b2o38b2o15b2o134b2o52bobo
$712bo$711b2o$726b2o$669b2o55bo$447b2o219bobo56b3o$448bo219bo60bo$403b
o44bobo216b2o$401b3o45b2o$400bo$400b2o2$377bo42bo83b2o183b2o$377b3o38b
3o15bo66bobo183bobo$370bo9bo36bo18b3o6b2o56bo187bo$370b3o6b2o23b2o11b
2o20bo6bo55b2o187b2o$373bo30b2o32b2o6bobo$372b2o73b2o3$460b2o58b2o$
460bobo57bobo$435b2o25bo59bo$435b2o25b2o58b2o2$368bo23b2o$367bobo22bo$
368bo14b2o8b3o29bobo30b2o$383bo11bo27bo5bo28bobo$384b3o55b2o16bo$386bo
35bo3bo3bo12bo16b2o50b2o$425bo14b3o6bo53b2o7b2o$370b2o32b2o16bo3b3o2bo
8bo7bobo53bo225b2o$369bobo33bo22bo20bo54bobo224bo$369bo32b3o18bo7bo73b
2o224bobo$368b2o32bo22bo62bo32b2o209b2o$384b2o41bobo56b3o32bo235b2o$
384bobo52b2o21bo22bo33bobo235b2o$386bo52b2o21b3o20b2o32b2o$377b2o7b2o
40b2o35bo259bo$377b2o50bo34b2o38bo218b3o$429bobo72b3o200bo14bo$430b2o
63bo11bo199b3o12b2o$495b3o8b2o14bo187bo$498bo22bobo185b2o$497b2o23bo2$
367b2o58b2o25b2o254b2o$368bo59bo25b2o254b2o17b2o$368bobo57bobo298b2o$
369b2o58b2o$767b2o$767b2o$442b2o73b2o$442bobo6b2o32b2o30bo$387b2o55bo
6bo20b2o11b2o23b2o6b3o205b2o$387bo56b2o6b3o18bo36bo9bo205bo19b2o$385bo
bo66bo15b3o38b3o213b3o15bobo$385b2o83bo42bo215bo15bo$723b2o19b2o$489b
2o232bo$490bo233b3o$440b2o45b3o236bo$440bobo44bo$442bo$442b2o3$732b2o$
732bo$367b2o15b2o38b2o287b2o15bobo$366bobo15b2o37bobo287b2o15b2o$366bo
25b2o29bo25b2o$365b2o25bo29b2o25bo$390bobo37b2o15bobo$390b2o38b2o15b2o
5$372b2o$373bo$328bo44bobo$326b3o45b2o336b2o$325bo385bobo$325b2o384bo$
710b2o$302bo42bo83b2o$302b3o38b3o15bo66bobo$295bo9bo36bo18b3o6b2o56bo$
295b3o6b2o23b2o11b2o20bo6bo55b2o$298bo30b2o32b2o6bobo$297b2o73b2o3$
385b2o58b2o275b2o$385bobo57bobo274b2o$360b2o25bo59bo$360b2o25b2o58b2o
2$293bo23b2o$292bobo22bo$293bo14b2o8b3o29bobo30b2o326b2o$308bo11bo27bo
5bo28bobo326bo19b2o5b2o$309b3o55b2o16bo326bobo17bo6bo$311bo35bo3bo3bo
12bo16b2o50b2o274b2o15bobo7b3o$350bo14b3o6bo53b2o7b2o286bo4b2o10bo$
295b2o32b2o16bo3b3o2bo8bo7bobo53bo294bobo$294bobo33bo22bo20bo54bobo
292bobo$294bo32b3o18bo7bo73b2o281b2o10bo$293b2o32bo22bo62bo32b2o264bob
o$309b2o41bobo56b3o32bo265bo$309bobo52b2o21bo22bo33bobo264b2o$311bo52b
2o21b3o20b2o32b2o280b2o$302b2o7b2o40b2o35bo335bo$302b2o50bo34b2o38bo
297b3o$354bobo72b3o297bo$355b2o63bo11bo$420b3o8b2o14bo$423bo22bobo$
422b2o23bo2$292b2o58b2o25b2o$293bo59bo25b2o$293bobo57bobo$294b2o58b2o
3$367b2o73b2o$367bobo6b2o32b2o30bo$312b2o55bo6bo20b2o11b2o23b2o6b3o$
312bo56b2o6b3o18bo36bo9bo$310bobo66bo15b3o38b3o$310b2o83bo42bo2$414b2o
$415bo$365b2o45b3o$365bobo44bo$367bo$367b2o5$292b2o15b2o38b2o$291bobo
15b2o37bobo$291bo25b2o29bo25b2o$290b2o25bo29b2o25bo$315bobo37b2o15bobo
$315b2o38b2o15b2o5$297b2o$298bo$253bo44bobo$251b3o45b2o$250bo$250b2o2$
227bo42bo83b2o$227b3o38b3o15bo66bobo$220bo9bo36bo18b3o6b2o56bo$220b3o
6b2o23b2o11b2o20bo6bo55b2o$223bo30b2o32b2o6bobo$222b2o73b2o3$310b2o58b
2o$310bobo57bobo$285b2o25bo59bo$285b2o25b2o58b2o2$218bo23b2o$217bobo
22bo$218bo14b2o8b3o29bobo30b2o$233bo11bo27bo5bo28bobo$234b3o55b2o16bo$
236bo35bo3bo3bo12bo16b2o50b2o$275bo14b3o6bo53b2o7b2o$220b2o32b2o16bo3b
3o2bo8bo7bobo53bo$219bobo33bo22bo20bo54bobo$219bo32b3o18bo7bo73b2o$
218b2o32bo22bo62bo32b2o$234b2o41bobo56b3o32bo$234bobo52b2o21bo22bo33bo
bo$236bo52b2o21b3o20b2o32b2o$227b2o7b2o40b2o35bo$227b2o50bo34b2o38bo$
279bobo72b3o$280b2o63bo11bo$345b3o8b2o14bo$348bo22bobo$347b2o23bo2$
217b2o58b2o25b2o$218bo59bo25b2o$218bobo57bobo$219b2o58b2o3$292b2o73b2o
$292bobo6b2o32b2o30bo$237b2o55bo6bo20b2o11b2o23b2o6b3o$237bo56b2o6b3o
18bo36bo9bo$235bobo66bo15b3o38b3o$235b2o83bo42bo2$339b2o$340bo$290b2o
45b3o$290bobo44bo$292bo$292b2o5$217b2o15b2o38b2o$216bobo15b2o37bobo$
216bo25b2o29bo25b2o$215b2o25bo29b2o25bo$240bobo37b2o15bobo$240b2o38b2o
15b2o5$222b2o$223bo$178bo44bobo$176b3o45b2o$175bo$175b2o2$152bo42bo83b
2o$152b3o38b3o15bo66bobo$145bo9bo36bo18b3o6b2o56bo$145b3o6b2o23b2o11b
2o20bo6bo55b2o$148bo30b2o32b2o6bobo$147b2o73b2o3$235b2o58b2o$235bobo
57bobo$210b2o25bo59bo$210b2o25b2o58b2o2$143bo23b2o$142bobo22bo$143bo
14b2o8b3o29bobo30b2o$158bo11bo27bo5bo28bobo$159b3o55b2o16bo$161bo35bo
3bo3bo12bo16b2o50b2o$200bo14b3o6bo53b2o7b2o$145b2o32b2o16bo3b3o2bo8bo
7bobo53bo$144bobo33bo22bo20bo54bobo$144bo32b3o18bo7bo73b2o$143b2o32bo
22bo62bo32b2o$159b2o41bobo56b3o32bo$159bobo52b2o21bo22bo33bobo$161bo
52b2o21b3o20b2o32b2o$152b2o7b2o40b2o35bo$152b2o50bo34b2o38bo$204bobo
72b3o$205b2o63bo11bo$270b3o8b2o14bo$273bo22bobo$272b2o23bo2$142b2o58b
2o25b2o$143bo59bo25b2o$143bobo57bobo$144b2o58b2o3$217b2o73b2o$217bobo
6b2o32b2o30bo$162b2o55bo6bo20b2o11b2o23b2o6b3o$162bo56b2o6b3o18bo36bo
9bo$160bobo66bo15b3o38b3o$160b2o83bo42bo2$264b2o$265bo$215b2o45b3o$
215bobo44bo$217bo$217b2o5$142b2o15b2o38b2o$141bobo15b2o37bobo$141bo25b
2o29bo25b2o$140b2o25bo29b2o25bo$165bobo37b2o15bobo$165b2o38b2o15b2o5$
147b2o$148bo$148bobo$149b2o4$204b2o$136bo66bobo$136b3o6b2o56bo$139bo6b
o55b2o$138b2o6bobo$147b2o$108bo$107bobo$107bobo50b2o58b2o$108bo51bobo
57bobo$135b2o25bo59bo$135b2o25b2o58b2o4$125bobo30b2o$123bo5bo28bobo$
142b2o16bo$122bo3bo3bo12bo16b2o50b2o$125bo14b3o6bo53b2o7b2o$122bo3b3o
2bo8bo7bobo53bo$128bo20bo54bobo$123bo7bo73b2o$125bo62bo32b2o$127bobo
56b3o32bo$139b2o21bo22bo33bobo$139b2o21b3o20b2o32b2o$128b2o35bo$129bo
34b2o38bo$129bobo72b3o$130b2o63bo11bo$195b3o8b2o14bo$198bo22bobo$197b
2o23bo2$127b2o25b2o$128bo25b2o$128bobo$129b2o3$142b2o73b2o$9bo132bobo
6b2o32b2o30bo$9b3o132bo6bo20b2o11b2o23b2o6b3o$12bo131b2o6b3o18bo36bo9b
o$11b2o141bo15b3o38b3o122b2o$170bo42bo123bo$337bobo$2ob2o184b2o147b2o
2b2o37bo$2obo186bo151b2o35b3o15bo9bo$3bo136b2o45b3o188bo18b3o5b3o$3b3o
4b2o128bobo44bo177b2o11b2o20bo3bo$b2o3bo3b2o130bo222b2o32b2o3b2o$o2b4o
135b2o$2obo15b2o$bo2b3o12bobo$bo5bo13bo146b2o3b2o$2b5o14b2o143b3obo2b
2o$4bo119b2o39bo4bo$123bobo39bo2b2ob4o$123bo25b2o13b2obobobo2bo161b2o
52b2o$122b2o25bo15bobobobo163bobo16b2o34b2o$130b2o15bobo15bobob2o164bo
18bobo45b2o$130b2o15b2o17bo167b2o20bo44bo2bo$350b2o4b2o44b2o4b2o$179b
2o169bobo55bobo$170b2o7bo172bo57bo$170b2o5bobo163b2o7b2o56b2o$177b2o
148bo15b2o20b2o33b2o$327b3o36bo34bo$330bo32b3o32b3o$329b2o32bo34bo4$
129b2o36b2o$128bobo37bo$128bo36b3o230b2o$127b2o36bo232bobo$400bo$167b
2o3b2o226b2o$167b2o2bob3o$171bo4bo177bo$167b4ob2o2bo175b3o$167bo2bobob
ob2o173bo$170bobobobo174b2o$171b2obobo$139b2o34bo$139b2o$151b2o8b2o$
151bobo8bo7b2o$153bo8bobo5b2o$153b2o8b2o2$128b2o$129bo19b2o180b2o$129b
obo17bo56bo124b2o$130b2o15bobo38b2o14b5o$134b2o6bo4b2o40bo13bo5bo$133b
o2bo4bobo29b2o14bobo12b3o2bo$134b2o5bobo29bo16b2o15bob2o$130b2o10bo31b
3o27b4o2bo$129bobo44bo22b2o3bo3b2o$129bo69b2o4b3o$128b2o77bo$143b2o62b
ob2o135b2o$143bo62b2ob2o135b2o$144b3o$146bo$162b2o34b2o$163bo34bo$163b
obo33b3o$164b2o2b2o31bo5bo$168b2o35b3o15bo9bo$204bo18b3o5b3o$191b2o11b
2o20bo3bo$191b2o32b2o3b2o5$230bo$229bo$229b3o$104bo57b2o52b2o$102b5o
14b2o38bobo16b2o34b2o$101bo5bo13bo39bo18bobo45b2o$101bo2b3o12bobo38b2o
20bo44bo2bo$100b2obo15b2o55b2o4b2o44b2o4b2o$100bo2b4o69bobo55bobo$101b
2o3bo3b2o66bo57bo$103b3o4b2o57b2o7b2o56b2o$103bo65b2o20b2o33b2o$100b2o
bo88bo34bo$100b2ob2o84b3o32b3o$189bo34bo2$111b2o$112bo$109b3o47b2o$
109bo50bo$160bobo$161b2o2$113bo$111b3o$110bo69bo$110b2o66b3o$177bo$
177b2o5$100b2o$99bobo5b2o47b2o$99bo7b2o48bo$98b2o57bobo$158b2o$112bo
39bo$108b2obobo38b3o$107bobobobo41bo$104bo2bobobob2o39b2o$104b4ob2o2bo
$108bo4bo$104b2o2bob3o$104b2o3b2o3$164b2o6b2o$157b2o5bobo5b2o$157b2o7b
o$166b2o2$153bo$152bobob2o$152bobobobo$151b2obobobo2bo$152bo2b2ob4o$
152bo4bo$153b3obo2b2o$155b2o3b2o26$302bo$300b3o$299bo$299b2o7$289b2o$
288bobo5b2o$288bo7b2o$287b2o2$301bo$297b2obobo$296bobobobo$293bo2bobob
ob2o$293b4ob2o2bo$297bo4bo$293b2o2bob3o$293b2o3b2o!
This is just a very rough early draft -- the timing happens to sort of work here, but I have no idea yet if it would still work with the multiplier set to a higher value than 1.

The obvious problem that came up here is that the base loop (mostly gliders) is faster than the Herschel-track binary multiplier, so it needs to be longer -- or doubled over, as I've done temporarily here, but I don't think much of that solution. One possible solution would be to make the base loop out of Herschel tracks, too... in fact, the exact same Herschel track -- two copies of the "reset" track to the northwest, with no period doublers in it.

That way the base loop could be trivially lengthened by just the right distance and exactly the right time offset: whenever a new bit is added, add one more identical-shaped step to the base loop as well.
simsim314 wrote:My main issue with the "trambone slide" method was, that the reflector that switches the parity of glider per generation, also switches it's color. And because I have a loop in the end, so I need to adjust color accordingly. So I can't simply put even or odd of this reflectors as I wish... I end up with color switcher as well, no way around it that I see.
It's pretty straightforward to build a custom Snark-assisted reflector, about the size of an old-style Silver reflector, that switches the parity but not the color of an input glider, or the color but not the parity. I've thrown in a few examples of alternate reflectors in the last couple of patterns.
simsim314 wrote:Not a big deal...but after all the calculation, it's "0" will be around 12-14K. A bit more than I was hoping for (less than 10K).
The above pattern finishes a pass through the 7-bit multiplier unit in well under 7500 ticks.
simsim314 wrote:If there is a recipe for mod 8 switcher it would help, if it's much smaller than this huge 8 reflector barricade.
This along with the custom reflectors looks like a nice little research project. I'm busy for most of this next week, but will try to have a look for a good mod-8 adjustment system sometime soon.

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 30th, 2014, 10:22 pm

simsim314 wrote:The main issue I have encounter until now is not the timing calculation, this I can handle, it's more the back shoot the destroys the glider. I can move the circulating glider exactly by steps of 8, but when adding two bits, there is no promise that the coming back shoot will also be a multiplication of 8. It's obvious it would be a multiplication of 2 but 8 it's not obvious. It's manageable, I just need to find the configuration for 2,4,6,8 bits - and then it repeats of course.
Oh! That doesn't look too worrisome (if I understand you correctly.) My most recent pattern includes a sample "glider stopper" that I think gets rid of the synchronization problem -- you send the suppression glider in a little bit early, and it creates a beehive that stops the glider. I used Paul Callahan's bistable switch in a previous pattern for the same purpose.

If we do switch over to Herschels for a larger part of the circuitry, there's a similar trick for stopping a signal in a Herschel track:

Code: Select all

#C Dean Hickerson's boat-bit Herschel stopper
x = 97, y = 38, rule = B3/S23
26bo49bo$24b3o34b2o11b3o$o22bo26bo10bo11bo$3o20b2o25b3o9bo10b2o$3bo49b
o7b2o$2b2o48b2o2$33bo$33b3o$36bo$11bo23b2o11b2o11bo$9b3o36b2o9b3o$9bob
o47bobo$9bo49bo35bo$94bobo$94bobo$95bo3$23b2o48b2o$10b2o11b2o35b2o11b
2o$11bo49bo$8b3o47b3o$8bo49bo2$27b2o48b2o$28bo49bo$25b3o20b2o25b3o$25b
o22bo26bo$49b3o$51bo5$31b3o$33bo$32bo!
simsim314 wrote:I think I do prefer this 45 degree, but i wonder how we would bend them... although it's pretty compact structure and feels like "nice to bend"...
Probably it's a good idea to finish a nice straight easy O(log N) version first, and then worry about the O(sqrt log N). But I don't think any really big problems will show up there either -- just have to run Hersrch to come up with two exactly-timed conduits that can turn the binary chain by a right angle. The inside conduit will be more squashed and folded than the outside one, no doubt.
simsim314 wrote:I see you really worry about calculating the exact timing. I use scripts that this type of calculation are managed inside them, without any "hard working arithmetic", in worst case I simply run a loop that calculates the timing and find a solution.
Well, the main reason I'm thinking about getting everything to add up exactly in the design stage is that it makes things easier to test later -- I can predict exactly when a suppression glider is supposed to show up, let's say, and can tweak the design until it does show up then. Otherwise I tend to get 90% done with a construction, and then realize that it works great for B bits where I've been doing all my testing, but comes up eight ticks short for B+1 bits... and by that time I've locked everything down so much that there's no easy way to fix the problem.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 31st, 2014, 3:10 am

Oh! That doesn't look too worrisome
Ok cool! I'm sure I saw it, but you will have to forgive my slowness, I'm still pretty new.
.. and by that time I've locked everything down so much
I rarely make the "final product" by hand. I just "sketch" everything to see it all fits together, then I use scripts to "finalize" the details. There is a method to use scripts only, to generate all you need, so that you can twick it all pretty simply. Also trying as much to avoid "magic numbers" as possible. Of course I don't have all the components in scripting, sometimes using pretty "dumb" script as well, and still I do need to do a lot thinking - but it solves many of the "small details adjustments" you mention, and small "timing" calculation that could be really annoying doing it all by hand.

I really liked the diagonal design, pretty much due to the extensibility you talked about.

I thought that all we need is "0,1,2" mod 4 reflectors that don't toggle color, three of these will make any number between 0-8. We have in the re-ignition track at least 3 reflectors, so the "research" is just about finding these 3 types of reflectors (one of them is snark). In the worst case we could add a color switch.
Last edited by simsim314 on April 2nd, 2014, 5:20 pm, edited 1 time in total.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 31st, 2014, 9:14 am

OK I took a bit different path for the mod8 delay mechanism. I made 2 delayers, that keep the glider on the same track but delay it by 1 or 2 ticks (mod8). So I need max 4 such components (3-delay by 2, and 1-delay by 1 - in order to make delay of 7). It costs max 1500 ticks, which still keeps us much below 10K for 7 bits, and keeps it all simple and clean enough. Now it's just the numbers... this diagonal approach really makes it all simple, even in general case. I'm a bit afraid that the back fire delay would be kind of ugly, sticking out too much, but as usual it will do the job...

Code: Select all

x = 2089, y = 330, rule = B3/S23
2029bo$2027b5o14b2o$2026bo5bo13bo$2026bo2b3o12bobo$2025b2obo15b2o$
2025bo2b4o$2026b2o3bo3b2o$2028b3o4b2o$2028bo$2025b2obo$2025b2ob2o3$
2036b2o$2037bo$2034b3o$2034bo3$2014b2o3b2o$1999b2o11b3obo2b2o$1999b2o
10bo4bo$2011bo2b2ob4o$2010b2obobobo2bo$2011bobobobo$2011bobob2o$2012bo
2$2025b2o$2016b2o7bo$1984b2o30b2o5bobo$1984b2o37b2o3$1981b2o$1982bo$
1982bobo$1983b2o$2013b2o$2014bo$2011b3o70bo$2011bo54b2o14b5o$2067bo13b
o5bo$2067bobo12b3o2bo$2068b2o15bob2o$2082b4o2bo$1987bo89b2o3bo3b2o$
1985b3o89b2o4b3o$1984bo56bo43bo$1984b2o37b2o14b5o41bob2o$1974b2o48bo
13bo5bo39b2ob2o$1975bo48bobo12b3o2bo$1975bobo47b2o15bob2o$1976b2o4b2o
38bo16b4o2bo30b2o$1981bo2bo35b3o11b2o3bo3b2o31bo$1982b2o35bo14b2o4b3o
34b3o$1994b2o23b2o21bo36bo$1994b2o46bob2o$2041b2ob2o3$2033b2o$2033bo$
2034b3o$2036bo$1980b2o3b2o$1981bo3bo20b2o23bo$1978b3o5b3o18bo22bobo$
1978bo9bo15b3o8b2o14bo$2004bo11bo$1459bo499bo53b3o$1457b5o14b2o479b5o
14b2o35bo$1456bo5bo13bo479bo5bo13bo$1456bo2b3o12bobo479bo2b3o12bobo51b
2o$1455b2obo15b2o479b2obo15b2o52bobo$1455bo2b4o493bo2b4o68bo$1456b2o3b
o3b2o489b2o3bo3b2o63b2o$1458b3o4b2o491b3o4b2o47b2o$1458bo499bo54bobo$
1455b2obo496b2obo54bo$1455b2ob2o239bo255b2ob2o52b2o7b2o$1697b5o14b2o
303b2o$1696bo5bo13bo$1466b2o228bo2b3o12bobo249b2o$1467bo227b2obo15b2o
251bo$1464b3o228bo2b4o262b3o$1464bo231b2o3bo3b2o257bo$1698b3o4b2o$
1698bo$1444b2o3b2o244b2obo245b2o3b2o$1429b2o11b3obo2b2o244b2ob2o229b2o
11b3obo2b2o$1429b2o10bo4bo482b2o10bo4bo$1441bo2b2ob4o490bo2b2ob4o$
1440b2obobobo2bo255b2o232b2obobobo2bo$1441bobobobo259bo233bobobobo$
1441bobob2o257b3o234bobob2o$1442bo261bo237bo2$1455b2o498b2o$1446b2o7bo
228b2o3b2o255b2o7bo$1414b2o30b2o5bobo213b2o11b3obo2b2o223b2o30b2o5bobo
$1414b2o37b2o214b2o10bo4bo227b2o37b2o$1681bo2b2ob4o$1680b2obobobo2bo$
1411b2o268bobobobo223b2o$1412bo268bobob2o225bo$1412bobo267bo229bobo$
1413b2o498b2o103b2o$1443b2o250b2o246b2o72bo2bo$1444bo241b2o7bo248bo73b
2o$1441b3o70bo139b2o30b2o5bobo245b3o70bo$1441bo54b2o14b5o137b2o37b2o
246bo54b2o14b5o$1497bo13bo5bo479bo13bo5bo$1497bobo12b3o2bo479bobo12b3o
2bo$1498b2o15bob2o132b2o345b2o15bob2o$1512b4o2bo133bo359b4o2bo$1417bo
89b2o3bo3b2o134bobo262bo89b2o3bo3b2o$1415b3o89b2o4b3o137b2o260b3o89b2o
4b3o$1414bo56bo43bo167b2o229bo56bo43bo$1414b2o37b2o14b5o41bob2o165bo
229b2o37b2o14b5o41bob2o$1404b2o48bo13bo5bo39b2ob2o162b3o70bo149b2o48bo
13bo5bo39b2ob2o$1405bo48bobo12b3o2bo206bo54b2o14b5o148bo48bobo12b3o2bo
$1405bobo47b2o15bob2o261bo13bo5bo147bobo47b2o15bob2o$1406b2o4b2o38bo
16b4o2bo30b2o229bobo12b3o2bo148b2o4b2o38bo16b4o2bo30b2o$1411bo2bo35b3o
11b2o3bo3b2o31bo231b2o15bob2o152bo2bo35b3o11b2o3bo3b2o31bo$1412b2o35bo
14b2o4b3o34b3o242b4o2bo153b2o35bo14b2o4b3o34b3o$1424b2o23b2o21bo36bo
147bo89b2o3bo3b2o166b2o23b2o21bo36bo$1424b2o46bob2o179b3o89b2o4b3o168b
2o46bob2o$1471b2ob2o178bo56bo43bo215b2ob2o$1654b2o37b2o14b5o41bob2o$
1644b2o48bo13bo5bo39b2ob2o$1463b2o180bo48bobo12b3o2bo248b2o$1463bo181b
obo47b2o15bob2o247bo$1464b3o179b2o4b2o38bo16b4o2bo30b2o216b3o$1466bo
184bo2bo35b3o11b2o3bo3b2o31bo219bo$1410b2o3b2o235b2o35bo14b2o4b3o34b3o
160b2o3b2o$1411bo3bo20b2o23bo202b2o23b2o21bo36bo161bo3bo20b2o23bo$
1408b3o5b3o18bo22bobo201b2o46bob2o192b3o5b3o18bo22bobo$1408bo9bo15b3o
8b2o14bo249b2ob2o192bo9bo15b3o8b2o14bo$1434bo11bo487bo11bo$889bo499bo
53b3o443bo53b3o$887b5o14b2o479b5o14b2o35bo259b2o182b5o14b2o35bo$886bo
5bo13bo479bo5bo13bo296bo182bo5bo13bo$886bo2b3o12bobo479bo2b3o12bobo51b
2o244b3o179bo2b3o12bobo51b2o$885b2obo15b2o479b2obo15b2o52bobo245bo178b
2obo15b2o52bobo$885bo2b4o493bo2b4o68bo189b2o3b2o228bo2b4o68bo$886b2o3b
o3b2o489b2o3bo3b2o63b2o189bo3bo20b2o23bo184b2o3bo3b2o63b2o$888b3o4b2o
491b3o4b2o47b2o202b3o5b3o18bo22bobo185b3o4b2o47b2o$888bo499bo54bobo
202bo9bo15b3o8b2o14bo186bo54bobo$885b2obo496b2obo54bo230bo11bo198b2obo
54bo$885b2ob2o239bo255b2ob2o52b2o7b2o176bo53b3o199b2ob2o52b2o7b2o$
1127b5o14b2o303b2o174b5o14b2o35bo267b2o$1126bo5bo13bo479bo5bo13bo$896b
2o228bo2b3o12bobo249b2o228bo2b3o12bobo51b2o196b2o$897bo227b2obo15b2o
251bo227b2obo15b2o52bobo196bo$894b3o228bo2b4o262b3o228bo2b4o68bo193b3o
$894bo231b2o3bo3b2o257bo231b2o3bo3b2o63b2o192bo$1128b3o4b2o491b3o4b2o
47b2o$1128bo499bo54bobo$874b2o3b2o244b2obo245b2o3b2o244b2obo54bo190b2o
3b2o$273b2o3b2o493b2o3b2o79b2o11b3obo2b2o244b2ob2o143b2o3b2o79b2o11b3o
bo2b2o244b2ob2o52b2o7b2o80b2o3b2o79b2o11b3obo2b2o$273b2o2bob3o491b2o2b
ob3o77b2o10bo4bo396b2o2bob3o77b2o10bo4bo314b2o80b2o2bob3o77b2o10bo4bo$
277bo4bo494bo4bo88bo2b2ob4o396bo4bo88bo2b2ob4o396bo4bo88bo2b2ob4o$273b
4ob2o2bo490b4ob2o2bo87b2obobobo2bo255b2o135b4ob2o2bo87b2obobobo2bo255b
2o135b4ob2o2bo87b2obobobo2bo$273bo2bobobob2o489bo2bobobob2o87bobobobo
259bo135bo2bobobob2o87bobobobo259bo135bo2bobobob2o87bobobobo$276bobobo
bo493bobobobo88bobob2o257b3o139bobobobo88bobob2o257b3o139bobobobo88bob
ob2o$277b2obobo494b2obobo89bo261bo142b2obobo89bo261bo142b2obobo89bo$
281bo499bo499bo499bo$885b2o498b2o498b2o$267b2o498b2o107b2o7bo228b2o3b
2o146b2o107b2o7bo228b2o3b2o146b2o107b2o7bo$268bo7b2o490bo7b2o66b2o30b
2o5bobo213b2o11b3obo2b2o147bo7b2o66b2o30b2o5bobo213b2o11b3obo2b2o147bo
7b2o66b2o30b2o5bobo$268bobo5b2o490bobo5b2o66b2o37b2o214b2o10bo4bo151bo
bo5b2o66b2o37b2o214b2o10bo4bo151bobo5b2o66b2o37b2o$269b2o498b2o340bo2b
2ob4o148b2o340bo2b2ob4o148b2o$1110b2obobobo2bo489b2obobobo2bo$841b2o
268bobobobo223b2o268bobobobo223b2o$842bo268bobob2o225bo268bobob2o225bo
$842bobo267bo229bobo267bo229bobo$843b2o498b2o103b2o393b2o103b2o$873b2o
250b2o246b2o72bo2bo174b2o246b2o72bo2bo$279b2o498b2o93bo241b2o7bo153b2o
93bo73b2o166b2o7bo153b2o93bo73b2o$279bo499bo91b3o70bo139b2o30b2o5bobo
153bo91b3o70bo139b2o30b2o5bobo153bo91b3o70bo$280b3o497b3o88bo54b2o14b
5o137b2o37b2o155b3o88bo54b2o14b5o137b2o37b2o155b3o88bo54b2o14b5o$282bo
499bo144bo13bo5bo334bo144bo13bo5bo334bo144bo13bo5bo$927bobo12b3o2bo
479bobo12b3o2bo479bobo12b3o2bo$928b2o15bob2o132b2o345b2o15bob2o132b2o
345b2o15bob2o$942b4o2bo133bo359b4o2bo133bo359b4o2bo$847bo89b2o3bo3b2o
134bobo262bo89b2o3bo3b2o134bobo262bo89b2o3bo3b2o$845b3o89b2o4b3o137b2o
260b3o89b2o4b3o137b2o103b2o155b3o89b2o4b3o$844bo56bo43bo167b2o229bo56b
o43bo167b2o72bo2bo153bo56bo43bo$844b2o37b2o14b5o41bob2o165bo229b2o37b
2o14b5o41bob2o165bo73b2o154b2o37b2o14b5o41bob2o$834b2o48bo13bo5bo39b2o
b2o162b3o70bo149b2o48bo13bo5bo39b2ob2o162b3o70bo149b2o48bo13bo5bo39b2o
b2o$835bo48bobo12b3o2bo206bo54b2o14b5o148bo48bobo12b3o2bo206bo54b2o14b
5o148bo48bobo12b3o2bo$835bobo47b2o15bob2o261bo13bo5bo147bobo47b2o15bob
2o261bo13bo5bo147bobo47b2o15bob2o$836b2o4b2o38bo16b4o2bo30b2o229bobo
12b3o2bo148b2o4b2o38bo16b4o2bo30b2o229bobo12b3o2bo148b2o4b2o38bo16b4o
2bo30b2o$841bo2bo35b3o11b2o3bo3b2o31bo231b2o15bob2o152bo2bo35b3o11b2o
3bo3b2o31bo231b2o15bob2o152bo2bo35b3o11b2o3bo3b2o31bo$842b2o35bo14b2o
4b3o34b3o242b4o2bo153b2o35bo14b2o4b3o34b3o242b4o2bo153b2o35bo14b2o4b3o
34b3o$854b2o23b2o21bo36bo147bo89b2o3bo3b2o166b2o23b2o21bo36bo147bo89b
2o3bo3b2o166b2o23b2o21bo36bo$854b2o46bob2o179b3o89b2o4b3o168b2o46bob2o
179b3o89b2o4b3o168b2o46bob2o$901b2ob2o178bo56bo43bo215b2ob2o178bo56bo
43bo215b2ob2o$1084b2o37b2o14b5o41bob2o395b2o37b2o14b5o41bob2o$1074b2o
48bo13bo5bo39b2ob2o385b2o48bo13bo5bo39b2ob2o$893b2o180bo48bobo12b3o2bo
248b2o180bo48bobo12b3o2bo248b2o$893bo181bobo47b2o15bob2o247bo181bobo
47b2o15bob2o247bo$894b3o179b2o4b2o38bo16b4o2bo30b2o216b3o179b2o4b2o38b
o16b4o2bo30b2o216b3o$896bo184bo2bo35b3o11b2o3bo3b2o31bo219bo184bo2bo
35b3o11b2o3bo3b2o31bo219bo$326bo499bo13b2o3b2o235b2o35bo14b2o4b3o34b3o
146bo13b2o3b2o235b2o35bo14b2o4b3o34b3o146bo13b2o3b2o$324b3o497b3o14bo
3bo20b2o23bo202b2o23b2o21bo36bo144b3o14bo3bo20b2o23bo202b2o23b2o21bo
36bo144b3o14bo3bo20b2o23bo$323bo499bo14b3o5b3o18bo22bobo201b2o46bob2o
177bo14b3o5b3o18bo22bobo201b2o46bob2o177bo14b3o5b3o18bo22bobo$323b2o
498b2o13bo9bo15b3o8b2o14bo249b2ob2o177b2o13bo9bo15b3o8b2o14bo249b2ob2o
177b2o13bo9bo15b3o8b2o14bo$294b2o498b2o68bo11bo417b2o68bo11bo417b2o68b
o11bo$272b2o20b2o476b2o20b2o77b3o396b2o20b2o77b3o396b2o20b2o77b3o$273b
o499bo99bo259b2o138bo99bo259b2o138bo99bo$262bo10bobo486bo10bobo357bo
128bo10bobo357bo128bo10bobo$260b3o11b2o484b3o11b2o112b2o244b3o123b3o
11b2o112b2o244b3o123b3o11b2o112b2o$244bo14bo484bo14bo128bobo245bo107bo
14bo128bobo245bo107bo14bo128bobo$244b3o12b2o52b2o429b3o12b2o52b2o75bo
189b2o3b2o157b3o12b2o52b2o75bo189b2o3b2o157b3o12b2o52b2o75bo$247bo64bo
bo5b2o425bo64bobo5b2o68b2o189bo3bo20b2o23bo115bo64bobo5b2o68b2o189bo3b
o20b2o23bo115bo64bobo5b2o68b2o$246b2o64bo7b2o424b2o64bo7b2o52b2o202b3o
5b3o18bo22bobo113b2o64bo7b2o52b2o202b3o5b3o18bo22bobo113b2o64bo7b2o52b
2o$311b2o498b2o60bobo202bo9bo15b3o8b2o14bo179b2o60bobo202bo9bo15b3o8b
2o14bo179b2o60bobo$873bo230bo11bo256bo230bo11bo256bo$247b2o76bo233bo
187b2o76bo46b2o7b2o176bo53b3o131b2o76bo46b2o7b2o176bo53b3o131b2o76bo
46b2o7b2o$247b2o17b2o53b2obobo230b5o14b2o169b2o17b2o53b2obobo54b2o174b
5o14b2o35bo133b2o17b2o53b2obobo54b2o174b5o14b2o35bo133b2o17b2o53b2obob
o54b2o$266b2o52bobobobo229bo5bo13bo189b2o52bobobobo229bo5bo13bo189b2o
52bobobobo229bo5bo13bo189b2o52bobobobo$317bo2bobobob2o228bo2b3o12bobo
240bo2bobobob2o228bo2b3o12bobo51b2o187bo2bobobob2o228bo2b3o12bobo51b2o
187bo2bobobob2o$304b2o11b4ob2o2bo228b2obo15b2o228b2o11b4ob2o2bo228b2ob
o15b2o52bobo173b2o11b4ob2o2bo228b2obo15b2o52bobo173b2o11b4ob2o2bo$304b
2o15bo4bo228bo2b4o242b2o15bo4bo228bo2b4o68bo173b2o15bo4bo228bo2b4o68bo
173b2o15bo4bo$317b2o2bob3o230b2o3bo3b2o250b2o2bob3o230b2o3bo3b2o63b2o
185b2o2bob3o230b2o3bo3b2o63b2o185b2o2bob3o$317b2o3b2o234b3o4b2o250b2o
3b2o234b3o4b2o47b2o201b2o3b2o234b3o4b2o47b2o201b2o3b2o$263b2o293bo204b
2o293bo54bobo147b2o293bo54bobo147b2o$263bo19b2o270b2obo204bo19b2o270b
2obo54bo149bo19b2o270b2obo54bo149bo19b2o$264b3o15bobo270b2ob2o204b3o
15bobo270b2ob2o52b2o7b2o141b3o15bobo270b2ob2o52b2o7b2o141b3o15bobo$
266bo15bo483bo15bo338b2o143bo15bo338b2o143bo15bo$260b2o19b2o477b2o19b
2o477b2o19b2o477b2o19b2o$260bo305b2o192bo305b2o192bo305b2o192bo$207bo
53b3o303bo139bo53b3o303bo139bo53b3o303bo139bo53b3o$205b5o14b2o37bo300b
3o138b5o14b2o37bo300b3o138b5o14b2o37bo300b3o138b5o14b2o37bo$204bo5bo
13bo339bo139bo5bo13bo339bo139bo5bo13bo339bo139bo5bo13bo$204bo2b3o12bob
o479bo2b3o12bobo479bo2b3o12bobo479bo2b3o12bobo$203b2obo15b2o479b2obo
15b2o479b2obo15b2o479b2obo15b2o$203bo2b4o334b2o3b2o152bo2b4o334b2o3b2o
152bo2b4o334b2o3b2o152bo2b4o$204b2o3bo3b2o314b2o11b3obo2b2o153b2o3bo3b
2o314b2o11b3obo2b2o153b2o3bo3b2o314b2o11b3obo2b2o153b2o3bo3b2o$206b3o
4b2o54b2o258b2o10bo4bo159b3o4b2o54b2o258b2o10bo4bo159b3o4b2o54b2o258b
2o10bo4bo159b3o4b2o54b2o$206bo62bo271bo2b2ob4o155bo62bo271bo2b2ob4o
155bo62bo271bo2b2ob4o155bo62bo$203b2obo22bo20b2o15bobo270b2obobobo2bo
152b2obo22bo20b2o15bobo270b2obobobo2bo152b2obo22bo20b2o15bobo270b2obob
obo2bo152b2obo22bo20b2o15bobo$203b2ob2o21b3o18b2o15b2o272bobobobo155b
2ob2o21b3o18b2o15b2o272bobobobo155b2ob2o21b3o18b2o15b2o272bobobobo155b
2ob2o21b3o18b2o15b2o$232bo308bobob2o185bo308bobob2o185bo308bobob2o185b
o$231b2o309bo188b2o309bo188b2o309bo188b2o$214b2o498b2o162b2o334b2o162b
2o334b2o162b2o$215bo339b2o158bo161bo2bo174b2o158bo161bo2bo174b2o158bo
161bo2bo$212b3o331b2o7bo156b3o163b2o166b2o7bo156b3o163b2o166b2o7bo156b
3o163b2o$212bo301b2o30b2o5bobo156bo301b2o30b2o5bobo156bo301b2o30b2o5bo
bo156bo$514b2o37b2o459b2o37b2o459b2o37b2o2$241b2o498b2o498b2o498b2o$
234b2o5bobo267b2o221b2o5bobo267b2o221b2o5bobo267b2o221b2o5bobo$234b2o
7bo268bo221b2o7bo268bo221b2o7bo268bo221b2o7bo$243b2o4b2o261bobo228b2o
4b2o261bobo228b2o4b2o261bobo228b2o4b2o$248bobo262b2o233bobo262b2o103b
2o128bobo262b2o103b2o128bobo$230bo17bo294b2o185bo17bo294b2o72bo2bo109b
o17bo294b2o72bo2bo109bo17bo$229bobob2o12b2o295bo184bobob2o12b2o295bo
73b2o109bobob2o12b2o295bo73b2o109bobob2o12b2o$229bobobobo305b3o70bo
114bobobobo305b3o70bo114bobobobo305b3o70bo114bobobobo$228b2obobobo2bo
302bo54b2o14b5o111b2obobobo2bo302bo54b2o14b5o111b2obobobo2bo302bo54b2o
14b5o111b2obobobo2bo$229bo2b2ob4o358bo13bo5bo111bo2b2ob4o358bo13bo5bo
111bo2b2ob4o358bo13bo5bo111bo2b2ob4o$229bo4bo362bobo12b3o2bo111bo4bo
362bobo12b3o2bo111bo4bo362bobo12b3o2bo111bo4bo$230b3obo2b2o359b2o15bob
2o111b3obo2b2o359b2o15bob2o111b3obo2b2o359b2o15bob2o111b3obo2b2o$232b
2o3b2o373b4o2bo113b2o3b2o373b4o2bo113b2o3b2o373b4o2bo113b2o3b2o$517bo
89b2o3bo3b2o399bo89b2o3bo3b2o399bo89b2o3bo3b2o$515b3o89b2o4b3o399b3o
89b2o4b3o399b3o89b2o4b3o$259b2o253bo56bo43bo143b2o253bo56bo43bo143b2o
253bo56bo43bo143b2o$259b2o253b2o37b2o14b5o41bob2o140b2o253b2o37b2o14b
5o41bob2o140b2o253b2o37b2o14b5o41bob2o140b2o$504b2o48bo13bo5bo39b2ob2o
385b2o48bo13bo5bo39b2ob2o385b2o48bo13bo5bo39b2ob2o$505bo48bobo12b3o2bo
430bo48bobo12b3o2bo430bo48bobo12b3o2bo$505bobo47b2o15bob2o429bobo47b2o
15bob2o429bobo47b2o15bob2o$226b2o278b2o4b2o38bo16b4o2bo30b2o118b2o278b
2o4b2o38bo16b4o2bo30b2o118b2o278b2o4b2o38bo16b4o2bo30b2o118b2o$226b2o
46b2o235bo2bo35b3o11b2o3bo3b2o31bo119b2o46b2o235bo2bo35b3o11b2o3bo3b2o
31bo119b2o46b2o235bo2bo35b3o11b2o3bo3b2o31bo119b2o46b2o$248b2o24bo237b
2o35bo14b2o4b3o34b3o138b2o24bo237b2o35bo14b2o4b3o34b3o138b2o24bo237b2o
35bo14b2o4b3o34b3o138b2o24bo$249bo19b2o4b3o246b2o23b2o21bo36bo139bo19b
2o4b3o246b2o23b2o21bo36bo139bo19b2o4b3o246b2o23b2o21bo36bo139bo19b2o4b
3o$249bobo17bo7bo246b2o46bob2o173bobo17bo7bo246b2o46bob2o173bobo17bo7b
o246b2o46bob2o173bobo17bo7bo$250b2o15bobo301b2ob2o174b2o15bobo301b2ob
2o174b2o15bobo301b2ob2o174b2o15bobo$262bo4b2o493bo4b2o493bo4b2o493bo4b
2o$261bobo497bobo497bobo497bobo$261bobo299b2o196bobo299b2o196bobo299b
2o196bobo$250b2o10bo300bo186b2o10bo300bo186b2o10bo300bo186b2o10bo$249b
obo312b3o182bobo312b3o182bobo312b3o182bobo$249bo316bo182bo316bo182bo
316bo182bo$248b2o260b2o3b2o231b2o260b2o3b2o231b2o260b2o3b2o231b2o$263b
2o246bo3bo20b2o23bo201b2o246bo3bo20b2o23bo201b2o246bo3bo20b2o23bo201b
2o$263bo244b3o5b3o18bo22bobo200bo244b3o5b3o18bo22bobo200bo244b3o5b3o
18bo22bobo200bo$3o247b3o11b3o233b3o5bo9bo15b3o8b2o14bo188b3o11b3o233b
3o5bo9bo15b3o8b2o14bo188b3o11b3o233b3o5bo9bo15b3o8b2o14bo188b3o11b3o$
2bo249bo13bo235bo31bo11bo205bo13bo235bo31bo11bo205bo13bo235bo31bo11bo
205bo13bo$bo249bo249bo41b3o205bo249bo41b3o205bo249bo41b3o205bo$543bo
499bo499bo2$558b2o498b2o498b2o$558bobo497bobo497bobo$560bo499bo499bo$
560b2o498b2o498b2o$544b2o498b2o498b2o$543bobo497bobo497bobo$543bo499bo
499bo$542b2o7b2o489b2o7b2o489b2o7b2o$551b2o498b2o498b2o26$548b2o498b2o
498b2o$547bo2bo496bo2bo496bo2bo$548b2o498b2o498b2o!
And here it's factored...

Code: Select all

x = 3524, y = 668, rule = B3/S23
722bo399bo399bo399bo399bo399bo399bo399bo$721bo399bo399bo399bo399bo399b
o399bo399bo$721b3o397b3o397b3o397b3o397b3o397b3o397b3o397b3o75$3323bo$
3321b5o14b2o$3320bo5bo13bo$3320bo2b3o12bobo$3319b2obo15b2o$3319bo2b4o$
3320b2o3bo3b2o$3322b3o4b2o$3322bo$3319b2obo$3319b2ob2o3$3330b2o$3331bo
$3328b3o$3328bo3$3308b2o3b2o$3293b2o11b3obo2b2o$3293b2o10bo4bo$3305bo
2b2ob4o$3304b2obobobo2bo$3305bobobobo$3305bobob2o$3306bo2$3319b2o$
3310b2o7bo$3278b2o30b2o5bobo$3278b2o37b2o3$3275b2o$3276bo$3276bobo$
3277b2o$3307b2o$3308bo$3305b3o70bo$3305bo54b2o14b5o$3361bo13bo5bo$
3361bobo12b3o2bo$3362b2o15bob2o$3376b4o2bo$3281bo89b2o3bo3b2o$3279b3o
89b2o4b3o$3278bo56bo43bo$3278b2o37b2o14b5o41bob2o$3268b2o48bo13bo5bo
39b2ob2o$3269bo48bobo12b3o2bo$3269bobo47b2o15bob2o$3270b2o4b2o38bo16b
4o2bo30b2o$3275bo2bo35b3o11b2o3bo3b2o31bo$3276b2o35bo14b2o4b3o34b3o$
3288b2o23b2o21bo36bo$3288b2o46bob2o$3335b2ob2o3$3327b2o$3327bo$3328b3o
$3330bo$3274b2o3b2o$3275bo3bo20b2o23bo$3272b3o5b3o18bo22bobo$3272bo9bo
15b3o8b2o14bo$3298bo11bo$3253bo53b3o$3251b5o14b2o35bo$3250bo5bo13bo$
3250bo2b3o12bobo51b2o$3249b2obo15b2o52bobo$3249bo2b4o68bo$3250b2o3bo3b
2o63b2o$3252b3o4b2o47b2o$3252bo54bobo$3249b2obo54bo$3249b2ob2o52b2o7b
2o$3315b2o2$3260b2o$3261bo$3258b3o$3258bo3$3238b2o3b2o$3223b2o11b3obo
2b2o$3223b2o10bo4bo$3235bo2b2ob4o$3234b2obobobo2bo$3235bobobobo$3235bo
bob2o$3236bo2$3249b2o$3240b2o7bo$3208b2o30b2o5bobo$3208b2o37b2o3$3205b
2o$3206bo$3206bobo$3207b2o103b2o$3237b2o72bo2bo$3238bo73b2o$3235b3o70b
o$3235bo54b2o14b5o$3291bo13bo5bo$3291bobo12b3o2bo$3292b2o15bob2o$3306b
4o2bo$3211bo89b2o3bo3b2o$3209b3o89b2o4b3o$3208bo56bo43bo$3208b2o37b2o
14b5o41bob2o$3198b2o48bo13bo5bo39b2ob2o$2402bo796bo48bobo12b3o2bo$
2400b5o14b2o778bobo47b2o15bob2o$2399bo5bo13bo780b2o4b2o38bo16b4o2bo30b
2o$2399bo2b3o12bobo785bo2bo35b3o11b2o3bo3b2o31bo$2398b2obo15b2o787b2o
35bo14b2o4b3o34b3o$2398bo2b4o813b2o23b2o21bo36bo$2399b2o3bo3b2o808b2o
46bob2o$2401b3o4b2o855b2ob2o$2401bo$2398b2obo$2398b2ob2o854b2o$3257bo$
3258b3o$2409b2o849bo$2410bo793b2o3b2o$2407b3o795bo3bo20b2o23bo$2407bo
794b3o5b3o18bo22bobo$3202bo9bo15b3o8b2o14bo$3228bo11bo$2387b2o3b2o789b
o53b3o$2372b2o11b3obo2b2o787b5o14b2o35bo$2372b2o10bo4bo790bo5bo13bo$
2384bo2b2ob4o786bo2b3o12bobo51b2o$2383b2obobobo2bo785b2obo15b2o52bobo$
2384bobobobo788bo2b4o68bo$2384bobob2o790b2o3bo3b2o63b2o$2385bo796b3o4b
2o47b2o$3182bo54bobo$2398b2o779b2obo54bo$2389b2o7bo780b2ob2o52b2o7b2o$
2357b2o30b2o5bobo846b2o$2357b2o37b2o$2770bo419b2o$2768b5o14b2o402bo$
2354b2o411bo5bo13bo400b3o$2355bo411bo2b3o12bobo400bo$2355bobo408b2obo
15b2o$2356b2o408bo2b4o$2386b2o379b2o3bo3b2o390b2o3b2o$2387bo381b3o4b2o
289b2o3b2o79b2o11b3obo2b2o$2384b3o70bo311bo297b2o2bob3o77b2o10bo4bo$
2384bo54b2o14b5o306b2obo301bo4bo88bo2b2ob4o$2440bo13bo5bo305b2ob2o296b
4ob2o2bo87b2obobobo2bo$2440bobo12b3o2bo606bo2bobobob2o87bobobobo$2441b
2o15bob2o608bobobobo88bobob2o$2455b4o2bo315b2o292b2obobo89bo$2360bo89b
2o3bo3b2o317bo296bo$2358b3o89b2o4b3o316b3o401b2o$2357bo56bo43bo316bo
285b2o107b2o7bo$2357b2o37b2o14b5o41bob2o600bo7b2o66b2o30b2o5bobo$2347b
2o48bo13bo5bo39b2ob2o600bobo5b2o66b2o37b2o$2348bo48bobo12b3o2bo337b2o
3b2o301b2o$2348bobo47b2o15bob2o321b2o11b3obo2b2o$2349b2o4b2o38bo16b4o
2bo30b2o289b2o10bo4bo377b2o$2354bo2bo35b3o11b2o3bo3b2o31bo302bo2b2ob4o
374bo$2355b2o35bo14b2o4b3o34b3o298b2obobobo2bo374bobo$2367b2o23b2o21bo
36bo299bobobobo378b2o103b2o$2367b2o46bob2o333bobob2o409b2o72bo2bo$
2414b2ob2o334bo319b2o93bo73b2o$3073bo91b3o70bo$2766b2o306b3o88bo54b2o
14b5o$2406b2o349b2o7bo309bo144bo13bo5bo$2406bo318b2o30b2o5bobo454bobo
12b3o2bo$2407b3o315b2o37b2o456b2o15bob2o$2409bo826b4o2bo$2353b2o3b2o
781bo89b2o3bo3b2o$2354bo3bo20b2o23bo317b2o415b3o89b2o4b3o$2351b3o5b3o
18bo22bobo317bo414bo56bo43bo$2351bo9bo15b3o8b2o14bo318bobo412b2o37b2o
14b5o41bob2o$2377bo11bo334b2o402b2o48bo13bo5bo39b2ob2o$2332bo53b3o365b
2o373bo48bobo12b3o2bo$2330b5o14b2o35bo368bo373bobo47b2o15bob2o$2329bo
5bo13bo402b3o70bo304b2o4b2o38bo16b4o2bo30b2o$2329bo2b3o12bobo51b2o349b
o54b2o14b5o307bo2bo35b3o11b2o3bo3b2o31bo$2328b2obo15b2o52bobo404bo13bo
5bo307b2o35bo14b2o4b3o34b3o$2328bo2b4o68bo404bobo12b3o2bo319b2o23b2o
21bo36bo$2329b2o3bo3b2o63b2o404b2o15bob2o318b2o46bob2o$2331b3o4b2o47b
2o434b4o2bo365b2ob2o$2331bo54bobo339bo89b2o3bo3b2o$2328b2obo54bo339b3o
89b2o4b3o$2328b2ob2o52b2o7b2o329bo56bo43bo360b2o$2394b2o329b2o37b2o14b
5o41bob2o357bo$2715b2o48bo13bo5bo39b2ob2o358b3o$2339b2o375bo48bobo12b
3o2bo404bo$2340bo375bobo47b2o15bob2o333bo13b2o3b2o$2337b3o377b2o4b2o
38bo16b4o2bo30b2o299b3o14bo3bo20b2o23bo$2337bo384bo2bo35b3o11b2o3bo3b
2o31bo299bo14b3o5b3o18bo22bobo$2723b2o35bo14b2o4b3o34b3o296b2o13bo9bo
15b3o8b2o14bo$2735b2o23b2o21bo36bo267b2o68bo11bo$2317b2o3b2o411b2o46bo
b2o279b2o20b2o77b3o$2216b2o3b2o79b2o11b3obo2b2o458b2ob2o280bo99bo$
2216b2o2bob3o77b2o10bo4bo736bo10bobo$2220bo4bo88bo2b2ob4o730b3o11b2o
112b2o$2216b4ob2o2bo87b2obobobo2bo450b2o262bo14bo128bobo$2216bo2bobobo
b2o87bobobobo453bo263b3o12b2o52b2o75bo$2219bobobobo88bobob2o455b3o263b
o64bobo5b2o68b2o$2220b2obobo89bo461bo262b2o64bo7b2o52b2o$2224bo496b2o
3b2o377b2o60bobo$2328b2o392bo3bo20b2o23bo394bo$2210b2o107b2o7bo390b3o
5b3o18bo22bobo267b2o76bo46b2o7b2o$2211bo7b2o66b2o30b2o5bobo390bo9bo15b
3o8b2o14bo268b2o17b2o53b2obobo54b2o$2211bobo5b2o66b2o37b2o417bo11bo
302b2o52bobobobo$2212b2o486bo53b3o354bo2bobobob2o$2698b5o14b2o35bo343b
2o11b4ob2o2bo$2284b2o411bo5bo13bo380b2o15bo4bo$2285bo411bo2b3o12bobo
51b2o340b2o2bob3o$2285bobo408b2obo15b2o52bobo339b2o3b2o$2286b2o103b2o
303bo2b4o68bo285b2o$2316b2o72bo2bo303b2o3bo3b2o63b2o284bo19b2o$2222b2o
93bo73b2o306b3o4b2o47b2o301b3o15bobo$2222bo91b3o70bo311bo54bobo303bo
15bo$2223b3o88bo54b2o14b5o306b2obo54bo299b2o19b2o$2225bo144bo13bo5bo
305b2ob2o52b2o7b2o290bo$2370bobo12b3o2bo371b2o237bo53b3o$2371b2o15bob
2o607b5o14b2o37bo$2385b4o2bo315b2o289bo5bo13bo$2290bo89b2o3bo3b2o317bo
289bo2b3o12bobo$2288b3o89b2o4b3o316b3o289b2obo15b2o$2287bo56bo43bo316b
o291bo2b4o$2287b2o37b2o14b5o41bob2o606b2o3bo3b2o$2277b2o48bo13bo5bo39b
2ob2o608b3o4b2o54b2o$2278bo48bobo12b3o2bo337b2o3b2o308bo62bo$1480bo
797bobo47b2o15bob2o321b2o11b3obo2b2o305b2obo22bo20b2o15bobo$1478b5o14b
2o780b2o4b2o38bo16b4o2bo30b2o289b2o10bo4bo309b2ob2o21b3o18b2o15b2o$
1477bo5bo13bo786bo2bo35b3o11b2o3bo3b2o31bo302bo2b2ob4o334bo$1477bo2b3o
12bobo787b2o35bo14b2o4b3o34b3o298b2obobobo2bo333b2o$1476b2obo15b2o800b
2o23b2o21bo36bo299bobobobo319b2o162b2o$1476bo2b4o814b2o46bob2o333bobob
2o321bo161bo2bo$1477b2o3bo3b2o856b2ob2o334bo322b3o163b2o$1479b3o4b2o
1518bo$1479bo1216b2o$1476b2obo856b2o349b2o7bo$1476b2ob2o855bo318b2o30b
2o5bobo338b2o$2337b3o315b2o37b2o332b2o5bobo$2339bo688b2o7bo$1487b2o
780bo13b2o3b2o747b2o4b2o$1488bo778b3o14bo3bo20b2o23bo317b2o388bobo$
1485b3o778bo14b3o5b3o18bo22bobo317bo370bo17bo$1485bo780b2o13bo9bo15b3o
8b2o14bo318bobo367bobob2o12b2o$2237b2o68bo11bo334b2o103b2o262bobobobo$
2215b2o20b2o77b3o365b2o72bo2bo260b2obobobo2bo$1465b2o3b2o744bo99bo368b
o73b2o262bo2b2ob4o$1364b2o3b2o79b2o11b3obo2b2o733bo10bobo463b3o70bo
267bo4bo$1364b2o2bob3o77b2o10bo4bo735b3o11b2o112b2o349bo54b2o14b5o266b
3obo2b2o$1368bo4bo88bo2b2ob4o715bo14bo128bobo404bo13bo5bo267b2o3b2o$
1364b4ob2o2bo87b2obobobo2bo715b3o12b2o52b2o75bo404bobo12b3o2bo$1364bo
2bobobob2o87bobobobo721bo64bobo5b2o68b2o404b2o15bob2o$1367bobobobo88bo
bob2o721b2o64bo7b2o52b2o434b4o2bo293b2o$1368b2obobo89bo790b2o60bobo
339bo89b2o3bo3b2o294b2o$1372bo943bo339b3o89b2o4b3o$1476b2o712b2o76bo
46b2o7b2o329bo56bo43bo$1358b2o107b2o7bo713b2o17b2o53b2obobo54b2o329b2o
37b2o14b5o41bob2o$1359bo7b2o66b2o30b2o5bobo732b2o52bobobobo375b2o48bo
13bo5bo39b2ob2o260b2o$1359bobo5b2o66b2o37b2o784bo2bobobob2o375bo48bobo
12b3o2bo304b2o46b2o$1360b2o486bo398b2o11b4ob2o2bo376bobo47b2o15bob2o
325b2o24bo$1846b5o14b2o380b2o15bo4bo377b2o4b2o38bo16b4o2bo30b2o294bo
19b2o4b3o$1432b2o411bo5bo13bo394b2o2bob3o383bo2bo35b3o11b2o3bo3b2o31bo
295bobo17bo7bo$1433bo411bo2b3o12bobo394b2o3b2o386b2o35bo14b2o4b3o34b3o
293b2o15bobo$1433bobo408b2obo15b2o341b2o457b2o23b2o21bo36bo305bo4b2o$
1434b2o408bo2b4o355bo19b2o437b2o46bob2o338bobo$1464b2o379b2o3bo3b2o
351b3o15bobo484b2ob2o338bobo$1370b2o93bo381b3o4b2o353bo15bo818b2o10bo$
1370bo91b3o70bo311bo355b2o19b2o817bobo$1371b3o88bo54b2o14b5o306b2obo
355bo500b2o337bo$1373bo144bo13bo5bo305b2ob2o301bo53b3o497bo337b2o$
1518bobo12b3o2bo609b5o14b2o37bo498b3o349b2o$1519b2o15bob2o607bo5bo13bo
539bo349bo$1533b4o2bo315b2o290bo2b3o12bobo483b2o3b2o400b3o$1438bo89b2o
3bo3b2o317bo289b2obo15b2o485bo3bo20b2o23bo357bo$1436b3o89b2o4b3o316b3o
290bo2b4o496b3o5b3o18bo22bobo$1435bo56bo43bo316bo293b2o3bo3b2o491bo9bo
15b3o8b2o14bo$1435b2o37b2o14b5o41bob2o609b3o4b2o54b2o461bo11bo$1425b2o
48bo13bo5bo39b2ob2o609bo62bo417bo53b3o$1426bo48bobo12b3o2bo337b2o3b2o
306b2obo22bo20b2o15bobo415b5o14b2o35bo$1426bobo47b2o15bob2o321b2o11b3o
bo2b2o306b2ob2o21b3o18b2o15b2o415bo5bo13bo$1427b2o4b2o38bo16b4o2bo30b
2o289b2o10bo4bo339bo451bo2b3o12bobo51b2o$1432bo2bo35b3o11b2o3bo3b2o31b
o302bo2b2ob4o334b2o450b2obo15b2o52bobo$1433b2o35bo14b2o4b3o34b3o298b2o
bobobo2bo317b2o162b2o303bo2b4o68bo$1445b2o23b2o21bo36bo299bobobobo321b
o161bo2bo303b2o3bo3b2o63b2o$1445b2o46bob2o333bobob2o319b3o163b2o306b3o
4b2o47b2o$1492b2ob2o334bo323bo473bo54bobo335bo$2626b2obo54bo335b5o14b
2o$1844b2o780b2ob2o52b2o7b2o325bo5bo13bo$1484b2o349b2o7bo339b2o506b2o
325bo2b3o12bobo$1484bo318b2o30b2o5bobo332b2o5bobo831b2obo15b2o$1485b3o
315b2o37b2o333b2o7bo450b2o379bo2b4o$1487bo698b2o4b2o444bo380b2o3bo3b2o
$1417bo13b2o3b2o753bobo441b3o383b3o4b2o$1415b3o14bo3bo20b2o23bo317b2o
371bo17bo443bo385bo$1414bo14b3o5b3o18bo22bobo317bo370bobob2o12b2o826b
2obo$1414b2o13bo9bo15b3o8b2o14bo318bobo368bobobobo839b2ob2o$1385b2o68b
o11bo334b2o367b2obobobo2bo433b2o3b2o$1363b2o20b2o77b3o365b2o338bo2b2ob
4o418b2o11b3obo2b2o$1364bo99bo368bo338bo4bo422b2o10bo4bo411b2o$512b2o
3b2o834bo10bobo463b3o70bo269b3obo2b2o430bo2b2ob4o408bo$512b2o2bob3o
830b3o11b2o112b2o349bo54b2o14b5o269b2o3b2o429b2obobobo2bo405b3o$516bo
4bo813bo14bo128bobo404bo13bo5bo705bobobobo408bo$512b4ob2o2bo813b3o12b
2o52b2o75bo404bobo12b3o2bo705bobob2o$512bo2bobobob2o815bo64bobo5b2o68b
2o404b2o15bob2o294b2o409bo$515bobobobo815b2o64bo7b2o52b2o434b4o2bo294b
2o$516b2obobo880b2o60bobo339bo89b2o3bo3b2o719b2o$520bo943bo339b3o89b2o
4b3o712b2o7bo$1338b2o76bo46b2o7b2o329bo56bo43bo680b2o30b2o5bobo$506b2o
830b2o17b2o53b2obobo54b2o329b2o37b2o14b5o41bob2o261b2o414b2o37b2o$507b
o7b2o840b2o52bobobobo375b2o48bo13bo5bo39b2ob2o261b2o46b2o$507bobo5b2o
891bo2bobobob2o375bo48bobo12b3o2bo327b2o24bo$508b2o885b2o11b4ob2o2bo
376bobo47b2o15bob2o327bo19b2o4b3o361b2o$1395b2o15bo4bo377b2o4b2o38bo
16b4o2bo30b2o295bobo17bo7bo362bo$1408b2o2bob3o383bo2bo35b3o11b2o3bo3b
2o31bo297b2o15bobo370bobo$1408b2o3b2o386b2o35bo14b2o4b3o34b3o306bo4b2o
372b2o103b2o$1354b2o457b2o23b2o21bo36bo305bobo407b2o72bo2bo$1354bo19b
2o437b2o46bob2o339bobo408bo73b2o$1355b3o15bobo484b2ob2o328b2o10bo406b
3o70bo$518b2o837bo15bo818bobo417bo54b2o14b5o$518bo832b2o19b2o818bo475b
o13bo5bo$519b3o829bo500b2o337b2o475bobo12b3o2bo$521bo776bo53b3o497bo
353b2o461b2o15bob2o$1296b5o14b2o37bo498b3o350bo476b4o2bo$1295bo5bo13bo
539bo351b3o378bo89b2o3bo3b2o$1295bo2b3o12bobo483b2o3b2o403bo376b3o89b
2o4b3o$1294b2obo15b2o485bo3bo20b2o23bo734bo56bo43bo$1294bo2b4o496b3o5b
3o18bo22bobo733b2o37b2o14b5o41bob2o$1295b2o3bo3b2o491bo9bo15b3o8b2o14b
o724b2o48bo13bo5bo39b2ob2o$1297b3o4b2o54b2o461bo11bo740bo48bobo12b3o2b
o$1297bo62bo417bo53b3o741bobo47b2o15bob2o$1294b2obo22bo20b2o15bobo415b
5o14b2o35bo744b2o4b2o38bo16b4o2bo30b2o$1294b2ob2o21b3o18b2o15b2o415bo
5bo13bo786bo2bo35b3o11b2o3bo3b2o31bo$1323bo451bo2b3o12bobo51b2o734b2o
35bo14b2o4b3o34b3o$1322b2o450b2obo15b2o52bobo745b2o23b2o21bo36bo$1305b
2o162b2o303bo2b4o68bo745b2o46bob2o437bo$1306bo161bo2bo303b2o3bo3b2o63b
2o791b2ob2o437b3o$1303b3o163b2o306b3o4b2o47b2o336bo915bo$1303bo473bo
54bobo334b5o14b2o896b2o$1774b2obo54bo335bo5bo13bo445b2o$1774b2ob2o52b
2o7b2o326bo2b3o12bobo445bo$1332b2o506b2o325b2obo15b2o447b3o$1325b2o5bo
bo832bo2b4o463bo$1325b2o7bo450b2o381b2o3bo3b2o402b2o3b2o$1334b2o4b2o
444bo383b3o4b2o403bo3bo20b2o23bo$565bo773bobo441b3o384bo408b3o5b3o18bo
22bobo462b2o$563b3o755bo17bo443bo383b2obo408bo9bo15b3o8b2o14bo456b2o5b
obo$562bo757bobob2o12b2o827b2ob2o433bo11bo471b2o7bo$562b2o756bobobobo
1287b3o481b2o$533b2o784b2obobobo2bo433b2o3b2o789bo54bo$511b2o20b2o785b
o2b2ob4o418b2o11b3obo2b2o408b2o377b5o14b2o507bo$512bo807bo4bo422b2o10b
o4bo413bo376bo5bo13bo52b2o453bobob2o$501bo10bobo806b3obo2b2o430bo2b2ob
4o406b3o377bo2b3o12bobo52bobo452bobobobo$499b3o11b2o808b2o3b2o429b2obo
bobo2bo406bo378b2obo15b2o55bo451b2obobobo2bo$483bo14bo1261bobobobo788b
o2b4o69b2o451bo2b2ob4o$483b3o12b2o52b2o1206bobob2o790b2o3bo3b2o48b2o
467bo4bo$486bo64bobo5b2o789b2o409bo796b3o4b2o47bobo468b3obo2b2o$485b2o
64bo7b2o789b2o1206bo55bo472b2o3b2o$550b2o1222b2o779b2obo54b2o7b2o$
1765b2o7bo780b2ob2o62b2o$486b2o76bo1168b2o30b2o5bobo$486b2o17b2o53b2ob
obo751b2o414b2o37b2o$505b2o52bobobobo751b2o46b2o1199b2o$556bo2bobobob
2o772b2o24bo1201bo$543b2o11b4ob2o2bo774bo19b2o4b3o361b2o832b3o$543b2o
15bo4bo774bobo17bo7bo362bo832bo$556b2o2bob3o776b2o15bobo370bobo$556b2o
3b2o790bo4b2o372b2o103b2o$502b2o848bobo407b2o72bo2bo$502bo19b2o828bobo
408bo73b2o$503b3o15bobo817b2o10bo406b3o70bo$505bo15bo818bobo417bo54b2o
14b5o$499b2o19b2o818bo475bo13bo5bo$499bo839b2o475bobo12b3o2bo$446bo53b
3o851b2o461b2o15bob2o$444b5o14b2o37bo851bo476b4o2bo$443bo5bo13bo891b3o
378bo89b2o3bo3b2o$443bo2b3o12bobo893bo376b3o89b2o4b3o$442b2obo15b2o
1270bo56bo43bo$442bo2b4o1284b2o37b2o14b5o41bob2o$443b2o3bo3b2o1269b2o
48bo13bo5bo39b2ob2o$445b3o4b2o54b2o1214bo48bobo12b3o2bo$445bo62bo417bo
797bobo47b2o15bob2o$442b2obo22bo20b2o15bobo415b5o14b2o780b2o4b2o38bo
16b4o2bo30b2o$442b2ob2o21b3o18b2o15b2o415bo5bo13bo786bo2bo35b3o11b2o3b
o3b2o31bo$471bo451bo2b3o12bobo787b2o35bo14b2o4b3o34b3o790b2o$470b2o
450b2obo15b2o800b2o23b2o21bo36bo404bo384bo2bo$453b2o467bo2b4o814b2o46b
ob2o438b3o383b2o$454bo468b2o3bo3b2o856b2ob2o441bo$451b3o471b3o4b2o385b
o915b2o$451bo473bo391b5o14b2o$922b2obo390bo5bo13bo445b2o$922b2ob2o389b
o2b3o12bobo445bo$480b2o833b2obo15b2o447b3o$473b2o5bobo832bo2b4o463bo$
473b2o7bo450b2o381b2o3bo3b2o402b2o3b2o$482b2o4b2o444bo383b3o4b2o403bo
3bo20b2o23bo464b2o$487bobo441b3o384bo408b3o5b3o18bo22bobo456b2o5bobo$
469bo17bo443bo383b2obo408bo9bo15b3o8b2o14bo457b2o7bo373bo$468bobob2o
12b2o827b2ob2o433bo11bo481b2o372b3o$468bobobobo1287b3o859bo$467b2obobo
bo2bo433b2o3b2o789bo54bo471bo388b2o$468bo2b2ob4o418b2o11b3obo2b2o408b
2o377b5o14b2o507bobob2o$468bo4bo422b2o10bo4bo413bo376bo5bo13bo52b2o
454bobobobo$469b3obo2b2o430bo2b2ob4o406b3o377bo2b3o12bobo52bobo452b2ob
obobo2bo$471b2o3b2o429b2obobobo2bo406bo378b2obo15b2o55bo453bo2b2ob4o$
908bobobobo788bo2b4o69b2o452bo4bo$908bobob2o790b2o3bo3b2o48b2o469b3obo
2b2o$498b2o409bo796b3o4b2o47bobo471b2o3b2o390b2o$498b2o1206bo55bo863b
2o5bobo$922b2o779b2obo54b2o7b2o854b2o7bo$913b2o7bo780b2ob2o62b2o863b2o
$881b2o30b2o5bobo$465b2o414b2o37b2o1700bo$465b2o46b2o1199b2o905bobob2o
$487b2o24bo1201bo905bobobobo$488bo19b2o4b3o361b2o832b3o905b2obobobo2bo
$488bobo17bo7bo362bo832bo908bo2b2ob4o$489b2o15bobo370bobo1739bo4bo$
501bo4b2o372b2o1740b3obo2b2o$500bobo407b2o1712b2o3b2o$500bobo408bo$
489b2o10bo406b3o70bo$488bobo417bo54b2o14b5o$488bo475bo13bo5bo$487b2o
475bobo12b3o2bo$502b2o461b2o15bob2o$502bo476b4o2bo$503b3o378bo89b2o3bo
3b2o$505bo376b3o89b2o4b3o$881bo56bo43bo$881b2o37b2o14b5o41bob2o$871b2o
48bo13bo5bo39b2ob2o$872bo48bobo12b3o2bo$872bobo47b2o15bob2o$873b2o4b2o
38bo16b4o2bo30b2o$878bo2bo35b3o11b2o3bo3b2o31bo$879b2o35bo14b2o4b3o34b
3o790b2o$891b2o23b2o21bo36bo404bo384bo2bo$891b2o46bob2o438b3o383b2o$
938b2ob2o441bo$467bo915b2o$465b5o14b2o$464bo5bo13bo445b2o$464bo2b3o12b
obo445bo$463b2obo15b2o447b3o$463bo2b4o463bo$464b2o3bo3b2o402b2o3b2o$
466b3o4b2o403bo3bo20b2o23bo464b2o$466bo408b3o5b3o18bo22bobo456b2o5bobo
$463b2obo408bo9bo15b3o8b2o14bo457b2o7bo373bo$463b2ob2o433bo11bo481b2o
372b3o$910b3o859bo$855bo54bo471bo388b2o$474b2o377b5o14b2o507bobob2o$
475bo376bo5bo13bo52b2o454bobobobo$472b3o377bo2b3o12bobo52bobo452b2obob
obo2bo$472bo378b2obo15b2o55bo453bo2b2ob4o$851bo2b4o69b2o452bo4bo$852b
2o3bo3b2o48b2o469b3obo2b2o$854b3o4b2o47bobo471b2o3b2o390b2o$854bo55bo
863b2o5bobo$851b2obo54b2o7b2o854b2o7bo$851b2ob2o62b2o863b2o2$1770bo$
862b2o905bobob2o$863bo905bobobobo$860b3o905b2obobobo2bo$860bo908bo2b2o
b4o$1769bo4bo$1770b3obo2b2o$1772b2o3b2o17$915b2o$529bo384bo2bo$529b3o
383b2o$532bo$531b2o7$541b2o$534b2o5bobo$534b2o7bo373bo$543b2o372b3o$4b
o915bo$2b5o14b2o507bo388b2o$bo5bo13bo507bobob2o$bo2b3o12bobo507bobobob
o$2obo15b2o507b2obobobo2bo$o2b4o522bo2b2ob4o$b2o3bo3b2o517bo4bo$3b3o4b
2o518b3obo2b2o$3bo528b2o3b2o390b2o$2obo918b2o5bobo$2ob2o917b2o7bo$931b
2o2$11b2o905bo$12bo904bobob2o$9b3o905bobobobo$9bo906b2obobobo2bo$917bo
2b2ob4o$917bo4bo$918b3obo2b2o$920b2o3b2o29$66bo$66b3o$69bo$68b2o7$78b
2o$71b2o5bobo$71b2o7bo$80b2o2$67bo$66bobob2o$66bobobobo$65b2obobobo2bo
$66bo2b2ob4o$66bo4bo$67b3obo2b2o$69b2o3b2o!
======

A small detail: To compensate for the growing difference between the circulating glider and the "killing mechanism" with growth of the bits, we can make the "lower glider circulation" shorter each 8 bits. Because 8 bits add something of 8N and we can shorten the circulation by any 8k, we can "return" each 8 bits to "0" difference. Probably it can be done actually each 4 bits , but it's less important, more important is the "compensation" mechanism itself.

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 31st, 2014, 10:45 am

simsim314 wrote:OK I took a bit different path for the mod8 delay mechanism. I made 2 delayers, that keep the glider on the same track but delay it by 1 or 2 ticks (mod8). So I need max 4 such components (3-delay by 2, and 1-delay by 1 - in order to make delay of 7). It costs max 1500 ticks, which still keeps us much below 10K for 7 bits, and keeps it all simple and clean enough.
Looks to me as if you might as well use the diagonal mirror image of the +1 delay component -- it will fit nicely into the gap to its southwest, every time you're using it:

Code: Select all

x = 174, y = 158, rule = B3/S23
90bo$88b5o14b2o$87bo5bo13bo$87bo2b3o12bobo$86b2obo15b2o$86bo2b4o$87b2o
3bo3b2o$89b3o4b2o$89bo$86b2obo$86b2ob2o3$97b2o$98bo$95b3o$95bo6$88b2o$
88b2o9$103b2o$103b2o8$171bo$171bobo$83b2o86b2o$84bo64bo$81b3o47b2o14b
5o$81bo50bo13bo5bo$132bobo12b3o2bo$133b2o15bob2o$147b4o2bo$36b2o104b2o
3bo3b2o$37bo104b2o4b3o$37bobo60b2o48bo$38b2o60bo49bob2o$101b3o45b2ob2o
$103bo2$37bo34bo68b2o$35b3o32b3o68bo$34bo34bo72b3o$34b2o33b2o20b2o51bo
$24b2o56b2o7b2o$25bo57bo$25bobo55bobo$26b2o4b2o44b2o4b2o$31bo2bo44bo
20b2o$32b2o45bobo18bo$44b2o34b2o16bobo$44b2o52b2o8$30b2o3b2o32b2o$31bo
3bo20b2o11b2o$28b3o5b3o18bo$28bo9bo15b3o35b2o$54bo37b2o2b2o$96bobo$98b
o$57bo40b2o$57b3o$60bo$4bo54b2o$2b5o14b2o$bo5bo13bo$bo2b3o12bobo26b2ob
2o$2obo15b2o27b2obo$o2b4o44bo$b2o3bo3b2o39b3o4b2o$3b3o4b2o37b2o3bo3b2o
$3bo44bo2b4o$2obo44b2obo15b2o$2ob2o44bo2b3o12bobo$49bo5bo13bo$50b5o14b
2o$11b2o39bo$12bo26b2o$9b3o27b2o$9bo68bo$76b3o$75bo$75b2o7$65b2o$64bob
o5b2o$64bo7b2o$63b2o2$77bo$73b2obobo$72bobobobo$69bo2bobobob2o$69b4ob
2o2bo$73bo4bo$69b2o2bob3o$69b2o3b2o11$66bo$66b3o$69bo$68b2o7$78b2o$71b
2o5bobo$71b2o7bo$80b2o2$67bo$66bobob2o$66bobobobo$65b2obobobo2bo$66bo
2b2ob4o$66bo4bo$67b3obo2b2o$69b2o3b2o!
simsim314 wrote:I thought that all we need is "0,1,2" mod 4 reflectors that don't toggle color, three of these will make any number between 0-8. We have in the re-ignition track at least 3 reflectors, so the "research" is just about finding these 3 types of reflectors (one of them is snark). In the worst case we could add a color switch.
Okay. Below are some very quick-and-dirty Hersrch results that could be used to build single reflectors, much smaller than some of your extended combinations, that have any output glider color and phase you need.

Start with a standard glider-to-Herschel component, like this one:

Code: Select all

#C dirty (extra beehive) G-to-H component from Silver reflector
x = 44, y = 28, rule = LifeHistory
4.A9.A$B3.3A5.3A$BA5.A3.A$2BA3.2A.B.2A$3AB2.7B$.4B3.B.B31.A$2.4B.B.B.
B21.5B3.A.A$3.5B.B.B19.7B3.A.A$4.5B.3B6.2B3.2B2.10B4.A$5.26BD6B$6.25B
DBD4B$6.14B2A9B3D4B$4.16B2A11BD4B$4.4B2A27B$3.4BA2BA7B.2B.3B.4B$2.2AB
2.B2A2B.B.4B6.4B$.A.AB2.5B4.4B4.4B$.A6.2B7.4B2.4B$2A6.4B6.8B$10.2A7.
6B$10.A9.4B$11.3A6.5B$13.A4.8B$18.2A3.4B$19.A4.4B$16.3A6.4B$16.A9.4B$
27.4B!
This is an incomplete color-preserving reflector: if you check the first glider coming out of the output Herschel, it's the same color as the input, with a delay of +2 ( mod 8 ).

So now we can add Herschel conduits to this in various ways. Different conduits will have different phase delays, so it won't take more than three or four Herschel conduits at most to produce all the variation we need. If we specify only target Herschels that have the same color as the input Herschel, we should end up with only color-preserving reflectors.

Hersrch batch file:

Code: Select all

set x=30000
set u=1700
set t=100
set n=1000
set p=997
set name=color-preserve
hersrch -p %p% -o %name%.rle -n %n% -f %name%.log -s -x %x% -u %u% -t %t% -e (t=0..50,p=0..7,j=-16..16,k=-16..16)F(0)[0,0]..F(t*8+p)[40+j+k,0-j+k]
pause
This produces a lot of possibilities:

Code: Select all

VLX198B VLX138 (j=16,k=13,l=1,p=0,t=42)
VF116 VF116 (j=11,k=13,l=1,p=0,t=29)
VF266 (j=9,k=4,l=1,p=2,t=33)
VFX77S VFX77S (j=5,k=5,l=1,p=2,t=19)
VF171 (j=3,k=-14,l=1,p=3,t=21)
VFX158 VFX158 (j=7,k=7,l=1,p=4,t=39)
VF117 (j=3,k=-3,l=1,p=5,t=14)
VFX158 VFX119B (j=13,k=-6,l=1,p=5,t=34)
VFX119G VFX158 (j=-6,k=13,l=1,p=5,t=34)
VF166 (j=3,k=6,l=1,p=6,t=20)
VR64E3 VLX138 VRX140 VR64X (j=16,k=5,l=1,p=6,t=50)
VRX140 VR64E1 VR64E1 VLX138 (j=5,k=16,l=1,p=6,t=50)
VFX77S VLX138 VR64E1 VR64E1 VR64X (j=-12,k=3,l=1,p=7,t=50)
The p= value is the phase mod 8.

Now, many of these won't work in a trivial way: they don't let out the Herschel's first natural glider. This includes VF116 VF116, VF266 [must be followed by F166 or Lx200], VF171, VFX158 VFX158, VFX119 VFX158, VF166, and maybe a few others. You could still use them for timing adjustments in many cases, though -- e.g., if you were appending a different H-to-G converter at the end. Or, for example, just append an F117 component to most of them; the phase will be changed by +5 mod 8, but you'll get a clean glider out.

Could do a similar search for color-changing reflectors -- just change the "40" in the script to a "41", for example, and you'll get only the other chessboard square color of targets. You can also change the "40" to a "60" (again for example) to look for longer Herschel tracks -- though you might have to increase the "t" range to match.

------------------------

After you have the output glider you want, you might have to add a few more Herschel conduits, to get a "reset" glider out -- you have to route a glider back to the initial G-to-H to clean up the extra beehive.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » March 31st, 2014, 4:13 pm

I started to look at your suggestion and tried as usual to make some shortcuts etc. Thinking of kind of shortcut to make 45 degree Herschel track parallel to what we have only to hold the glider back, i figured - we already have this Herschel track shooting all kinds of "goodies" probably with alternating periods etc. so why not to use them? Lets just open some glider that is part of the Herschel back shoot like that:

Code: Select all

x = 772, y = 735, rule = B3/S23
633b2o$633bo$631bobo$631b2o4$639bo$599b2o38b3o$600bo41bo14bo$600bobo
38b2o12b3o$601b2o2b2o47bo$605b2o47b2o3$653b2o$634b2o17b2o$634b2o6$599b
2o36b2o$598bobo16b2o19bo$598bo18bobo15b3o$597b2o20bo15bo$613b2o4b2o19b
2o$613bobo25bo$615bo22b3o$606b2o7b2o21bo$606b2o7$596b2o$597bo$597bobo$
598b2o$614bo$612b3o$611bo$611b2o28b2o$640bobo$640bo29b2o$639b2o29bobo$
579b2o91bo$556bo23bo64b2o25b2o$554b3o23bobo61bobo4b2o$553bo27b2o61bo7b
o$553b2o88b2o4b3o$649bo$530bo42bo83b2o$530b3o38b3o44b2o36bobo$523bo9bo
36bo47b2o36bo$523b3o6b2o23b2o11b2o83b2o$526bo30b2o$525b2o$613b2o$613b
2o$617b2o54b2o$617b2o54bobo$675bo$675b2o$582b2o27b2o$521bo23b2o35b2o
11b2o14b2o$520bobo22bo49bo$521bo14b2o8b3o29bobo15b3o$536bo11bo27bo5bo
15bo$537b3o$539bo35bo3bo3bo81b2o$578bo77b2o7b2o$523b2o32b2o16bo3b3o2bo
72bo$522bobo33bo22bo75bobo$522bo32b3o18bo7bo73b2o$521b2o32bo22bo62bo
32b2o$537b2o41bobo56b3o32bo$537bobo52b2o21bo22bo33bobo$539bo52b2o21b3o
20b2o32b2o$530b2o7b2o40b2o35bo$530b2o50bo34b2o38bo$582bobo72b3o$583b2o
63bo11bo$648b3o8b2o14bo$651bo22bobo$650b2o23bo2$520b2o58b2o25b2o$521bo
59bo25b2o$521bobo57bobo$522b2o58b2o3$595b2o$595bobo6b2o32b2o$540b2o55b
o6bo20b2o11b2o23b2o23bo$540bo56b2o6b3o18bo36bo22b3o$538bobo66bo15b3o
38b3o18bo$538b2o83bo42bo18b2o2$642b2o$643bo49b2ob2o$593b2o45b3o51bob2o
$593bobo44bo53bo$595bo90b2o4b3o$595b2o89b2o3bo3b2o$691b4o2bo$677b2o15b
ob2o$676bobo12b3o2bo$676bo13bo5bo$520b2o15b2o38b2o96b2o14b5o$519bobo
15b2o37bobo114bo$519bo25b2o29bo25b2o129b2o$518b2o25bo29b2o25bo131bo$
543bobo37b2o15bobo131bobo$543b2o38b2o15b2o133b2o$760b2o$760b2o2$728bo$
525b2o199b3o$526bo183bo14bo$481bo44bobo181b3o12b2o$479b3o45b2o184bo$
478bo233b2o$478b2o2$455bo42bo83b2o129b2o$455b3o38b3o15bo66bobo129b2o
17b2o$448bo9bo36bo18b3o6b2o56bo150b2o$448b3o6b2o23b2o11b2o20bo6bo55b2o
$451bo30b2o32b2o6bobo243b2o$450b2o73b2o243b2o3$538b2o58b2o129b2o$538bo
bo57bobo128bo19b2o$513b2o25bo59bo40bo88b3o15bobo$513b2o25b2o58b2o39b3o
88bo15bo$644bo81b2o19b2o$446bo23b2o171b2o81bo$445bobo22bo256b3o$446bo
14b2o8b3o29bobo30b2o191bo$461bo11bo27bo5bo28bobo93b2ob2o$462b3o55b2o
16bo93b2obo$464bo35bo3bo3bo12bo16b2o50b2o43bo$503bo14b3o6bo53b2o7b2o
43b3o4b2o$448b2o32b2o16bo3b3o2bo8bo7bobo53bo50b2o3bo3b2o$447bobo33bo
22bo20bo54bobo47bo2b4o96b2o$447bo32b3o18bo7bo73b2o47b2obo15b2o82bo$
446b2o32bo22bo62bo32b2o32bo2b3o12bobo62b2o15bobo$462b2o41bobo56b3o32bo
33bo5bo13bo62b2o15b2o$462bobo52b2o21bo22bo33bobo34b5o14b2o$464bo52b2o
21b3o20b2o32b2o37bo$455b2o7b2o40b2o35bo$455b2o50bo34b2o38bo$507bobo72b
3o$508b2o63bo11bo$573b3o8b2o14bo$576bo22bobo$575b2o23bo2$445b2o58b2o
25b2o$446bo59bo25b2o181b2o$446bobo57bobo205bobo$447b2o58b2o205bo$713b
2o2$520b2o73b2o$520bobo6b2o32b2o30bo$465b2o55bo6bo20b2o11b2o23b2o6b3o$
465bo56b2o6b3o18bo36bo9bo$463bobo66bo15b3o38b3o82b2o$463b2o83bo42bo82b
2o2$567b2o156b2o$568bo156b2o$518b2o45b3o93b2o$518bobo44bo96bo$520bo
141bobo$520b2o141b2o2$714b2o$715bo19b2o5b2o$681b2o32bobo17bo6bo$445b2o
15b2o38b2o177b2o15bo17b2o15bobo7b3o$444bobo15b2o37bobo192b3o29bo4b2o
10bo$444bo25b2o29bo25b2o134b2o30bo31bobo$443b2o25bo29b2o25bo134bobo30b
2o30bobo$468bobo37b2o15bobo134bo53b2o10bo$468b2o38b2o15b2o134b2o52bobo
$715bo$714b2o$729b2o$672b2o55bo$450b2o219bobo56b3o$451bo219bo60bo$406b
o44bobo216b2o$404b3o45b2o$403bo$403b2o2$380bo42bo83b2o183b2o$380b3o38b
3o15bo66bobo183bobo$373bo9bo36bo18b3o6b2o56bo187bo$373b3o6b2o23b2o11b
2o20bo6bo55b2o187b2o$376bo30b2o32b2o6bobo$375b2o73b2o3$463b2o58b2o$
463bobo57bobo$438b2o25bo59bo$438b2o25b2o58b2o2$371bo23b2o$370bobo22bo$
371bo14b2o8b3o29bobo30b2o$386bo11bo27bo5bo28bobo$387b3o55b2o16bo$389bo
35bo3bo3bo12bo16b2o50b2o$428bo14b3o6bo53b2o7b2o$373b2o32b2o16bo3b3o2bo
8bo7bobo53bo225b2o$372bobo33bo22bo20bo54bobo224bo$372bo32b3o18bo7bo73b
2o224bobo$371b2o32bo22bo62bo32b2o209b2o$387b2o41bobo56b3o32bo235b2o$
387bobo52b2o21bo22bo33bobo235b2o$389bo52b2o21b3o20b2o32b2o$380b2o7b2o
40b2o35bo259bo$380b2o50bo34b2o38bo218b3o$432bobo72b3o200bo14bo$433b2o
63bo11bo199b3o12b2o$498b3o8b2o14bo187bo$501bo22bobo185b2o$500b2o23bo2$
370b2o58b2o25b2o254b2o$371bo59bo25b2o254b2o17b2o$371bobo57bobo298b2o$
372b2o58b2o$770b2o$770b2o$445b2o73b2o$445bobo6b2o32b2o30bo$390b2o55bo
6bo20b2o11b2o23b2o6b3o205b2o$390bo56b2o6b3o18bo36bo9bo205bo19b2o$388bo
bo66bo15b3o38b3o213b3o15bobo$388b2o83bo42bo215bo15bo$726b2o19b2o$492b
2o232bo$493bo233b3o$443b2o45b3o236bo$443bobo44bo$445bo$445b2o3$735b2o$
735bo$370b2o15b2o38b2o287b2o15bobo$369bobo15b2o37bobo287b2o15b2o$369bo
25b2o29bo25b2o$368b2o25bo29b2o25bo$393bobo37b2o15bobo$393b2o38b2o15b2o
5$375b2o$376bo$331bo44bobo$329b3o45b2o336b2o$328bo385bobo$328b2o384bo$
713b2o$305bo42bo83b2o$305b3o38b3o15bo66bobo$298bo9bo36bo18b3o6b2o56bo$
298b3o6b2o23b2o11b2o20bo6bo55b2o$301bo30b2o32b2o6bobo$300b2o73b2o3$
388b2o58b2o275b2o$388bobo57bobo274b2o$363b2o25bo59bo$363b2o25b2o58b2o
2$296bo23b2o$295bobo22bo$296bo14b2o8b3o29bobo30b2o326b2o$311bo11bo27bo
5bo28bobo326bo19b2o5b2o$312b3o55b2o16bo326bobo17bo6bo$314bo35bo3bo3bo
12bo16b2o50b2o274b2o15bobo7b3o$353bo14b3o6bo53b2o7b2o286bo4b2o10bo$
298b2o32b2o16bo3b3o2bo8bo7bobo53bo294bobo$297bobo33bo22bo20bo54bobo
292bobo$297bo32b3o18bo7bo73b2o281b2o10bo$296b2o32bo22bo62bo32b2o264bob
o$312b2o41bobo56b3o32bo265bo$312bobo52b2o21bo22bo33bobo264b2o$314bo52b
2o21b3o20b2o32b2o280b2o$305b2o7b2o40b2o35bo335bo$305b2o50bo34b2o38bo
297b3o$357bobo72b3o297bo$358b2o63bo11bo$423b3o8b2o14bo$426bo22bobo$
425b2o23bo2$295b2o58b2o25b2o$296bo59bo25b2o$296bobo57bobo$297b2o58b2o
3$370b2o73b2o$370bobo6b2o32b2o30bo$315b2o55bo6bo20b2o11b2o23b2o6b3o$
315bo56b2o6b3o18bo36bo9bo$313bobo66bo15b3o38b3o$313b2o83bo42bo2$417b2o
$418bo$368b2o45b3o$368bobo44bo$370bo$370b2o5$295b2o15b2o38b2o$294bobo
15b2o37bobo$294bo25b2o29bo25b2o$293b2o25bo29b2o25bo$318bobo37b2o15bobo
$318b2o38b2o15b2o5$300b2o$301bo$256bo44bobo$254b3o45b2o$253bo$253b2o2$
230bo42bo83b2o$230b3o38b3o15bo66bobo$223bo9bo36bo18b3o6b2o56bo$223b3o
6b2o23b2o11b2o20bo6bo55b2o$226bo30b2o32b2o6bobo$225b2o73b2o3$313b2o58b
2o$313bobo57bobo$288b2o25bo59bo$288b2o25b2o58b2o2$221bo23b2o$220bobo
22bo$221bo14b2o8b3o29bobo30b2o$236bo11bo27bo5bo28bobo$237b3o55b2o16bo$
239bo35bo3bo3bo12bo16b2o50b2o$278bo14b3o6bo53b2o7b2o$223b2o32b2o16bo3b
3o2bo8bo7bobo53bo$222bobo33bo22bo20bo54bobo$222bo32b3o18bo7bo73b2o$
221b2o32bo22bo62bo32b2o$237b2o41bobo56b3o32bo$237bobo52b2o21bo22bo33bo
bo$239bo52b2o21b3o20b2o32b2o$230b2o7b2o40b2o35bo$230b2o50bo34b2o38bo$
282bobo72b3o$283b2o63bo11bo$348b3o8b2o14bo$351bo22bobo$350b2o23bo2$
220b2o58b2o25b2o$221bo59bo25b2o$221bobo57bobo$222b2o58b2o3$295b2o73b2o
$295bobo6b2o32b2o30bo$240b2o55bo6bo20b2o11b2o23b2o6b3o$240bo56b2o6b3o
18bo36bo9bo$238bobo66bo15b3o38b3o$238b2o83bo42bo2$342b2o$343bo$293b2o
45b3o$293bobo44bo$295bo$295b2o5$220b2o15b2o38b2o$219bobo15b2o37bobo$
143b2o3b2o69bo25b2o29bo25b2o$141b3obo2b2o68b2o25bo29b2o25bo$140bo4bo
97bobo37b2o15bobo$140bo2b2ob4o93b2o38b2o15b2o$139b2obobobo2bo$140bobob
obo$140bobob2o$141bo$225b2o$154b2o70bo$145b2o7bo26bo44bobo$145b2o5bobo
24b3o45b2o$152b2o24bo$178b2o2$155bo42bo83b2o$155b3o38b3o15bo66bobo$
158bo36bo18b3o6b2o56bo$157b2o23b2o11b2o20bo6bo55b2o$142b2o38b2o32b2o6b
obo$143bo81b2o$140b3o$140bo$238b2o58b2o$238bobo57bobo$213b2o25bo59bo$
213b2o25b2o58b2o2$146bo23b2o$145bobo22bo$146bo14b2o8b3o29bobo30b2o$
161bo11bo27bo5bo28bobo$162b3o55b2o16bo$164bo35bo3bo3bo12bo16b2o50b2o$
203bo14b3o6bo53b2o7b2o$148b2o32b2o16bo3b3o2bo8bo7bobo53bo$147bobo33bo
22bo20bo54bobo$147bo32b3o18bo7bo73b2o$146b2o32bo22bo62bo32b2o$162b2o
41bobo56b3o32bo$162bobo52b2o21bo22bo33bobo$164bo52b2o21b3o20b2o32b2o$
155b2o7b2o40b2o35bo$155b2o50bo34b2o38bo$207bobo72b3o$208b2o63bo11bo$
273b3o8b2o14bo$276bo22bobo$275b2o23bo2$145b2o58b2o25b2o$146bo59bo25b2o
$146bobo57bobo$147b2o58b2o3$220b2o73b2o$220bobo6b2o32b2o30bo$165b2o55b
o6bo20b2o11b2o23b2o6b3o$165bo56b2o6b3o18bo36bo9bo$163bobo66bo15b3o38b
3o$163b2o83bo42bo2$267b2o$268bo$218b2o45b3o$218bobo44bo$220bo$220b2o5$
145b2o15b2o38b2o$144bobo15b2o37bobo$144bo25b2o29bo25b2o$143b2o25bo29b
2o25bo$168bobo37b2o15bobo$168b2o38b2o15b2o5$150b2o$151bo$151bobo$152b
2o4$207b2o$139bo66bobo$139b3o6b2o56bo$142bo6bo55b2o$141b2o6bobo$150b2o
$111bo$110bobo$110bobo50b2o58b2o$111bo51bobo57bobo$138b2o25bo59bo$138b
2o25b2o58b2o4$128bobo30b2o$126bo5bo28bobo$145b2o16bo$125bo3bo3bo12bo
16b2o50b2o$128bo14b3o6bo53b2o7b2o$125bo3b3o2bo8bo7bobo53bo$131bo20bo
54bobo$126bo7bo73b2o$128bo62bo32b2o$130bobo56b3o32bo$142b2o21bo22bo33b
obo$142b2o21b3o20b2o32b2o$131b2o35bo$132bo34b2o38bo$132bobo72b3o$133b
2o63bo11bo$198b3o8b2o14bo$201bo22bobo$200b2o23bo2$130b2o25b2o$131bo25b
2o$131bobo$132b2o$9bo$9b3o$12bo132b2o73b2o$11b2o132bobo6b2o32b2o30bo$
147bo6bo20b2o11b2o23b2o6b3o$147b2o6b3o18bo36bo9bo$2ob2o152bo15b3o38b3o
122b2o$2obo169bo42bo123bo$3bo336bobo$3b3o4b2o180b2o147b2o2b2o37bo$b2o
3bo3b2o181bo151b2o35b3o15bo9bo$o2b4o136b2o45b3o188bo18b3o5b3o$2obo15b
2o122bobo44bo177b2o11b2o20bo3bo$bo2b3o12bobo123bo222b2o32b2o3b2o$bo5bo
13bo123b2o$2b5o14b2o$4bo$171b2o3b2o$169b3obo2b2o$127b2o39bo4bo$126bobo
39bo2b2ob4o$126bo25b2o13b2obobobo2bo161b2o52b2o$125b2o25bo15bobobobo
163bobo16b2o34b2o$133b2o15bobo15bobob2o164bo18bobo45b2o$133b2o15b2o17b
o167b2o20bo44bo2bo$353b2o4b2o44b2o4b2o$182b2o169bobo55bobo$173b2o7bo
172bo57bo$173b2o5bobo163b2o7b2o56b2o$180b2o148bo15b2o20b2o33b2o$330b3o
36bo34bo$333bo32b3o32b3o$332b2o32bo34bo4$132b2o36b2o$131bobo37bo$131bo
36b3o230b2o$130b2o36bo232bobo$403bo$170b2o3b2o226b2o$170b2o2bob3o$174b
o4bo177bo$170b4ob2o2bo175b3o$170bo2bobobob2o173bo$173bobobobo174b2o$
174b2obobo$142b2o34bo$142b2o$154b2o8b2o$154bobo8bo7b2o$156bo8bobo5b2o$
156b2o8b2o2$131b2o$132bo19b2o180b2o$132bobo17bo56bo124b2o$133b2o15bobo
38b2o14b5o$137b2o6bo4b2o40bo13bo5bo$136bo2bo4bobo29b2o14bobo12b3o2bo$
137b2o5bobo29bo16b2o15bob2o$133b2o10bo31b3o27b4o2bo$132bobo44bo22b2o3b
o3b2o$132bo69b2o4b3o$131b2o77bo$146b2o62bob2o135b2o$146bo62b2ob2o135b
2o$147b3o$149bo$165b2o34b2o$166bo34bo$166bobo33b3o$167b2o2b2o31bo5bo$
171b2o35b3o15bo9bo$207bo18b3o5b3o$194b2o11b2o20bo3bo$194b2o32b2o3b2o5$
233bo$232bo$232b3o$107bo57b2o52b2o$105b5o14b2o38bobo16b2o34b2o$104bo5b
o13bo39bo18bobo45b2o$104bo2b3o12bobo38b2o20bo44bo2bo$103b2obo15b2o55b
2o4b2o44b2o4b2o$103bo2b4o69bobo55bobo$104b2o3bo3b2o66bo57bo$106b3o4b2o
57b2o7b2o56b2o$106bo65b2o20b2o33b2o$103b2obo88bo34bo$103b2ob2o84b3o32b
3o$192bo34bo2$114b2o$115bo$112b3o47b2o$112bo50bo$163bobo$164b2o2$116bo
$114b3o$113bo69bo$113b2o66b3o$180bo$180b2o5$103b2o$102bobo5b2o47b2o$
102bo7b2o48bo$101b2o57bobo$161b2o$115bo39bo$111b2obobo38b3o$110bobobob
o41bo$107bo2bobobob2o39b2o$107b4ob2o2bo$111bo4bo$107b2o2bob3o$107b2o3b
2o3$167b2o6b2o$160b2o5bobo5b2o$160b2o7bo$169b2o2$156bo$155bobob2o$155b
obobobo$154b2obobobo2bo$155bo2b2ob4o$155bo4bo$156b3obo2b2o$158b2o3b2o
26$305bo$303b3o$302bo$302b2o7$292b2o$291bobo5b2o$291bo7b2o$290b2o2$
304bo$300b2obobo$299bobobobo$296bo2bobobob2o$296b4ob2o2bo$300bo4bo$
296b2o2bob3o$296b2o3b2o!
Now this gives another advantage, as you mentioned earlier the glider is faster than Herschel thus your design would require to adjust the glider accordingly for "long bit" cases. Not a big deal - but with this approach all the "goodies" can be found in the last (or first) 4 Herschel circuits, thus the distance between the back firing glider and the last updated "bit" is pretty small and remains such.

The only problem with that is again - accurate calculations, to open the correct glider in correct place... but I don't think it's a big deal.

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » March 31st, 2014, 6:35 pm

simsim314 wrote:I started to look at your suggestion and tried as usual to make some shortcuts etc. Thinking of kind of shortcut to make 45 degree Herschel track parallel to what we have only to hold the glider back, i figured - we already have this Herschel track shooting all kinds of "goodies" probably with alternating periods etc. so why not to use them? Lets just open some glider that is part of the Herschel back shoot...
Sure, that makes sense. There are a couple of different glider outputs in each "stairstep" of the back-shooter. Between those and the various timings of reflectors, no doubt all the required phases are available very quickly.

Below is the next simplification that I suggested a few posts back. I looked the problem of adding a short length to the base loop for each added bit, so that it could grow by exactly the right amount to offset the back-shooter's longer return time.

It doesn't seem to be trivial to do this by chaining together Snarks and reflectors, at least for this particular diagonal Herschel track. A Herschel moves 75 cells diagonally along this track in 466 ticks, which is a fair fraction of a glider's speed. The fastest reflectors I could find slowed a glider by a little too much, taking 500+ ticks to get back onto the same lane after going through a minimal delay circuit.

The obvious solution seems to be to use the same exact shape of Herschel track in the base loop as in the binary multiplier. Then when you add bits to the binary multiplier, just add the same number of stairsteps to the base loop. The relative timing back at the low end of the chain should be guaranteed not to change. (Right?)

With any luck this will be a convincing sample:

Code: Select all

#C Period 7852 x (1..256) + 196 gun with extensible binary multiplier
x = 787, y = 760, rule = B3/S23
680b2o$680bo$678bobo$678b2o4$686bo$646b2o38b3o$647bo41bo14bo$647bobo
38b2o12b3o$648b2o2b2o47bo$652b2o47b2o3$700b2o$681b2o17b2o$681b2o6$646b
2o36b2o$645bobo16b2o19bo$645bo18bobo15b3o$644b2o20bo15bo$660b2o4b2o19b
2o$660bobo25bo$662bo22b3o$653b2o7b2o21bo$653b2o7$643b2o$644bo$644bobo$
645b2o$661bo$659b3o$658bo$658b2o28b2o$687bobo$687bo29b2o$686b2o29bobo$
626b2o91bo$603bo23bo64b2o25b2o$601b3o23bobo61bobo4b2o$600bo27b2o61bo7b
o$600b2o88b2o4b3o$696bo$577bo42bo83b2o$577b3o38b3o44b2o36bobo$570bo9bo
36bo47b2o36bo$570b3o6b2o23b2o11b2o83b2o$573bo30b2o$572b2o$660b2o$660b
2o$664b2o54b2o$664b2o54bobo$722bo$722b2o$629b2o27b2o$568bo23b2o35b2o
11b2o14b2o$567bobo22bo49bo$568bo14b2o8b3o29bobo15b3o$583bo11bo27bo5bo
15bo$584b3o$586bo35bo3bo3bo81b2o$625bo77b2o7b2o$570b2o32b2o16bo3b3o2bo
72bo$569bobo33bo22bo75bobo$569bo32b3o18bo7bo73b2o$568b2o32bo22bo62bo
32b2o$584b2o41bobo56b3o32bo$584bobo52b2o21bo22bo33bobo$586bo52b2o21b3o
20b2o32b2o$577b2o7b2o40b2o35bo$577b2o50bo34b2o38bo$629bobo72b3o$630b2o
63bo11bo$695b3o8b2o14bo$698bo22bobo$697b2o23bo2$567b2o58b2o25b2o$568bo
59bo25b2o$568bobo57bobo$569b2o58b2o3$642b2o73b2o$642bobo6b2o32b2o30bo$
587b2o55bo6bo20b2o11b2o23b2o6b3o$587bo56b2o6b3o18bo36bo9bo$585bobo66bo
15b3o38b3o$585b2o83bo42bo2$689b2o$690bo$640b2o45b3o$640bobo44bo$642bo$
642b2o5$567b2o15b2o38b2o$566bobo15b2o37bobo$566bo25b2o29bo25b2o$565b2o
25bo29b2o25bo$590bobo37b2o15bobo$590b2o38b2o15b2o5$572b2o$573bo$528bo
44bobo$526b3o45b2o$525bo$525b2o2$502bo42bo83b2o$502b3o38b3o15bo66bobo$
495bo9bo36bo18b3o6b2o56bo$495b3o6b2o23b2o11b2o20bo6bo55b2o$498bo30b2o
32b2o6bobo$497b2o73b2o3$585b2o58b2o$585bobo57bobo$560b2o25bo59bo$560b
2o25b2o58b2o2$493bo23b2o$492bobo22bo$493bo14b2o8b3o29bobo30b2o$508bo
11bo27bo5bo28bobo$509b3o55b2o16bo$511bo35bo3bo3bo12bo16b2o50b2o$550bo
14b3o6bo53b2o7b2o$495b2o32b2o16bo3b3o2bo8bo7bobo53bo$494bobo33bo22bo
20bo54bobo$494bo32b3o18bo7bo73b2o$493b2o32bo22bo62bo32b2o$509b2o41bobo
56b3o32bo$509bobo52b2o21bo22bo33bobo$511bo52b2o21b3o20b2o32b2o$502b2o
7b2o40b2o35bo$502b2o50bo34b2o38bo75bo20bo$554bobo72b3o72bobo7bo11b3o$
555b2o63bo11bo72bo6b3o14bo$620b3o8b2o14bo45b2o16bo16b2o12bo$623bo22bob
o45bo16b2o29b3o$622b2o23bo46bobo48bo$695b2o47b2o$492b2o58b2o25b2o$493b
o59bo25b2o$493bobo57bobo$494b2o58b2o135b2o25b2o$692bo25b2o$692bobo$
567b2o73b2o49b2o$567bobo6b2o32b2o30bo$512b2o55bo6bo20b2o11b2o23b2o6b3o
$512bo56b2o6b3o18bo36bo9bo60b2o$510bobo66bo15b3o38b3o67bobo6b2o$510b2o
83bo42bo69bo6bo20b2o$708b2o6b3o18bo44b2o$614b2o102bo15b3o45bo$615bo
118bo45bobo$565b2o45b3o161b2o2b2o$565bobo44bo163b2o$567bo172b2o$567b2o
135b2o33bobo$704bobo32bo$706bo31b2o$706b2o2$492b2o15b2o38b2o190b2o$
491bobo15b2o37bobo191bo$491bo25b2o29bo25b2o163b3o$490b2o25bo29b2o25bo
113b2o49bo$515bobo37b2o15bobo112bobo56b2o34b2o$515b2o38b2o15b2o113bo
25b2o32bo16b2o16bobo$686b2o25bo30b3o16bobo18bo$694b2o15bobo30bo18bo20b
2o$694b2o15b2o49b2o4b2o$767bobo$497b2o268bo$498bo267b2o7b2o$453bo44bob
o274b2o$451b3o45b2o$450bo$450b2o2$427bo42bo83b2o$427b3o38b3o15bo66bobo
$420bo9bo36bo18b3o6b2o56bo231b2o$420b3o6b2o23b2o11b2o20bo6bo55b2o139b
2o90bo$423bo30b2o32b2o6bobo193bobo88bobo$422b2o73b2o193bo90b2o$691b2o
2$510b2o58b2o$510bobo57bobo192bo$485b2o25bo59bo162b2o28b3o$485b2o25b2o
58b2o135b2o17b2o5b2o31bo$709bobo16b2o37b2o$418bo23b2o267bo50bo$417bobo
22bo268b2o49b3o$418bo14b2o8b3o29bobo30b2o220b2o17b2o14bo$433bo11bo27bo
5bo28bobo219b2o17bo14b2o$434b3o55b2o16bo213b2o21bobo$436bo35bo3bo3bo
12bo16b2o50b2o160b2o21b2o$475bo14b3o6bo53b2o7b2o$420b2o32b2o16bo3b3o2b
o8bo7bobo53bo$419bobo33bo22bo20bo54bobo144b2o$419bo32b3o18bo7bo73b2o
135b2o7b2o58b2o$418b2o32bo22bo62bo32b2o120bo67b2o17b2o$434b2o41bobo56b
3o32bo121bobo84b2o$434bobo52b2o21bo22bo33bobo122b2o$436bo52b2o21b3o20b
2o32b2o106bo32b2o$427b2o7b2o40b2o35bo159b3o32bo70b2o$427b2o50bo34b2o
38bo75bo20bo22bo33bobo70bo$479bobo72b3o72bobo7bo11b3o20b2o32b2o58b2o
12b3o$480b2o63bo11bo72bo6b3o14bo96b2o16bo14bo$545b3o8b2o14bo45b2o16bo
16b2o38bo27b2o28bo14b3o$548bo22bobo45bo16b2o55b3o26bo29b3o11bo$547b2o
23bo46bobo62bo11bo25bobo29bo$620b2o62b3o8b2o14bo11b2o$417b2o58b2o25b2o
181bo22bobo$418bo59bo25b2o180b2o23bo$418bobo57bobo$419b2o58b2o135b2o
25b2o$617bo25b2o$617bobo$492b2o73b2o49b2o$492bobo6b2o32b2o30bo$437b2o
55bo6bo20b2o11b2o23b2o6b3o$437bo56b2o6b3o18bo36bo9bo60b2o73b2o$435bobo
66bo15b3o38b3o67bobo6b2o32b2o30bo$435b2o83bo42bo69bo6bo20b2o11b2o23b2o
6b3o14b2o$633b2o6b3o18bo36bo9bo14b2o14b2o$539b2o102bo15b3o38b3o13b2o
22bo$540bo118bo42bo14bo23b3o$490b2o45b3o177bobo23bo$490bobo44bo140b2o
38b2o$492bo186bo$492b2o135b2o45b3o$629bobo44bo$631bo$631b2o103b2o$736b
o$417b2o15b2o38b2o258bobo$416bobo15b2o37bobo258b2o$416bo25b2o29bo25b2o
$415b2o25bo29b2o25bo113b2o$440bobo37b2o15bobo112bobo$440b2o38b2o15b2o
113bo25b2o$611b2o25bo$619b2o15bobo$619b2o15b2o2$422b2o$423bo$378bo44bo
bo$376b3o45b2o290b2o15b2o$375bo339bobo15b2o$375b2o338bo25b2o$714b2o25b
o$352bo42bo83b2o258bobo$352b3o38b3o15bo66bobo258b2o$345bo9bo36bo18b3o
6b2o56bo$345b3o6b2o23b2o11b2o20bo6bo55b2o139b2o$348bo30b2o32b2o6bobo
193bobo$347b2o73b2o193bo$616b2o103b2o$722bo$435b2o58b2o180bo44bobo$
435bobo57bobo177b3o45b2o$410b2o25bo59bo176bo$410b2o25b2o58b2o135b2o38b
2o$634bobo$343bo23b2o267bo14bo42bo$342bobo22bo268b2o13b3o38b3o15bo$
343bo14b2o8b3o29bobo30b2o209bo9bo36bo18b3o6b2o$358bo11bo27bo5bo28bobo
208b3o6b2o23b2o11b2o20bo6bo$359b3o55b2o16bo211bo30b2o32b2o6bobo$361bo
35bo3bo3bo12bo16b2o50b2o157b2o73b2o$400bo14b3o6bo53b2o7b2o$345b2o32b2o
16bo3b3o2bo8bo7bobo53bo$344bobo33bo22bo20bo54bobo144b2o106b2o$344bo32b
3o18bo7bo73b2o135b2o7b2o106bobo$343b2o32bo22bo62bo32b2o120bo90b2o25bo$
359b2o41bobo56b3o32bo121bobo88b2o25b2o$359bobo52b2o21bo22bo33bobo122b
2o$361bo52b2o21b3o20b2o32b2o106bo32b2o5bo23b2o$352b2o7b2o40b2o35bo159b
3o32bo5bobo22bo$352b2o50bo34b2o38bo75bo20bo22bo33bobo6bo14b2o8b3o62b2o
$404bobo72b3o72bobo7bo11b3o20b2o32b2o22bo11bo62bobo$405b2o63bo11bo72bo
6b3o14bo78b3o55b2o16bo$470b3o8b2o14bo45b2o16bo16b2o38bo41bo38b2o16bo
16b2o$473bo22bobo45bo16b2o55b3o78bo14b3o6bo$472b2o23bo46bobo62bo11bo
22b2o32b2o20b3o11bo7bobo$545b2o62b3o8b2o14bo6bobo33bo22bo20bo$342b2o
58b2o25b2o181bo22bobo5bo32b3o$343bo59bo25b2o180b2o23bo5b2o32bo$343bobo
57bobo252b2o$344b2o58b2o135b2o25b2o88bobo$542bo25b2o90bo$542bobo106b2o
7b2o$417b2o73b2o49b2o106b2o$417bobo6b2o32b2o30bo$362b2o55bo6bo20b2o11b
2o23b2o6b3o$362bo56b2o6b3o18bo36bo9bo60b2o73b2o$360bobo66bo15b3o38b3o
67bobo6b2o32b2o30bo$360b2o83bo42bo69bo6bo20b2o11b2o23b2o6b3o$558b2o6b
3o18bo36bo9bo$464b2o102bo15b3o38b3o13b2o$465bo118bo42bo14bo$415b2o45b
3o177bobo$415bobo44bo140b2o38b2o$417bo186bo$417b2o135b2o45b3o$554bobo
44bo$556bo$556b2o103b2o$661bo$342b2o15b2o38b2o258bobo$341bobo15b2o37bo
bo258b2o$341bo25b2o29bo25b2o$340b2o25bo29b2o25bo113b2o$365bobo37b2o15b
obo112bobo$365b2o38b2o15b2o113bo25b2o$536b2o25bo$544b2o15bobo$544b2o
15b2o2$347b2o$348bo$303bo44bobo$301b3o45b2o290b2o15b2o$300bo339bobo15b
2o$243b2o3b2o50b2o338bo25b2o$241b3obo2b2o389b2o25bo$240bo4bo31bo42bo
83b2o258bobo$240bo2b2ob4o27b3o38b3o15bo66bobo258b2o$239b2obobobo2bo20b
o9bo36bo18b3o6b2o56bo$240bobobobo23b3o6b2o23b2o11b2o20bo6bo55b2o139b2o
$240bobob2o27bo30b2o32b2o6bobo193bobo$241bo30b2o73b2o193bo$541b2o103b
2o$254b2o391bo$245b2o7bo105b2o58b2o180bo44bobo$245b2o5bobo105bobo57bob
o177b3o45b2o$252b2o81b2o25bo59bo176bo$335b2o25b2o58b2o135b2o38b2o$559b
obo$268bo23b2o267bo14bo42bo$267bobo22bo268b2o13b3o38b3o15bo$268bo14b2o
8b3o29bobo30b2o209bo9bo36bo18b3o6b2o$283bo11bo27bo5bo28bobo208b3o6b2o
23b2o11b2o20bo6bo$242b2o40b3o55b2o16bo211bo30b2o32b2o6bobo$243bo42bo
35bo3bo3bo12bo16b2o50b2o157b2o73b2o$240b3o82bo14b3o6bo53b2o7b2o$240bo
29b2o32b2o16bo3b3o2bo8bo7bobo53bo$269bobo33bo22bo20bo54bobo144b2o106b
2o$269bo32b3o18bo7bo73b2o135b2o7b2o106bobo$268b2o32bo22bo62bo32b2o120b
o90b2o25bo$284b2o41bobo56b3o32bo121bobo88b2o25b2o$284bobo52b2o21bo22bo
33bobo122b2o$286bo52b2o21b3o20b2o32b2o106bo32b2o5bo23b2o$277b2o7b2o40b
2o35bo159b3o32bo5bobo22bo$277b2o50bo34b2o38bo75bo20bo22bo33bobo6bo14b
2o8b3o62b2o$329bobo72b3o72bobo7bo11b3o20b2o32b2o22bo11bo62bobo$330b2o
63bo11bo72bo6b3o14bo78b3o55b2o16bo$395b3o8b2o14bo45b2o16bo16b2o38bo41b
o38b2o16bo16b2o$398bo22bobo45bo16b2o55b3o78bo14b3o6bo$397b2o23bo46bobo
62bo11bo22b2o32b2o20b3o11bo7bobo$470b2o62b3o8b2o14bo6bobo33bo22bo20bo$
267b2o58b2o25b2o181bo22bobo5bo32b3o$268bo59bo13bo11b2o180b2o23bo5b2o
32bo$268bobo57bobo252b2o$269bo59b2o135b2o25b2o88bobo$467bo25b2o90bo$
467bobo106b2o7b2o$342b2o73b2o49b2o106b2o$342bobo6b2o32b2o30bo$287b2o
55bo6bo20b2o11b2o23b2o6b3o$287bo56b2o6b3o18bo36bo9bo60b2o73b2o$285bobo
66bo15b3o38b3o67bobo6b2o32b2o30bo$285b2o83bo42bo69bo6bo20b2o11b2o23b2o
6b3o$483b2o6b3o18bo36bo9bo$389b2o102bo15b3o38b3o13b2o$390bo118bo42bo
14bo$340b2o45b3o177bobo$340bobo44bo140b2o38b2o$342bo186bo$342b2o135b2o
45b3o$479bobo44bo$481bo$481b2o103b2o$586bo$267b2o15b2o38b2o258bobo$
266bobo15b2o37bobo258b2o$266bo25b2o29bo25b2o$265b2o25bo29b2o25bo113b2o
$290bobo37b2o15bobo112bobo$290b2o38b2o15b2o113bo25b2o$461b2o25bo$469b
2o15bobo$469b2o15b2o2$272b2o$273bo$228bo44bobo$226b3o45b2o290b2o15b2o$
225bo339bobo15b2o$225b2o338bo25b2o$564b2o25bo$202bo42bo83b2o258bobo$
202b3o38b3o15bo66bobo258b2o$195bo9bo36bo18b3o6b2o56bo$195b3o6b2o23b2o
11b2o20bo6bo55b2o139b2o$198bo30b2o32b2o6bobo193bobo$197b2o73b2o193bo$
466b2o103b2o$572bo$285b2o58b2o180bo44bobo$285bobo57bobo177b3o45b2o$
180b2o3b2o73b2o25bo59bo176bo$178b3obo2b2o73b2o25b2o58b2o135b2o38b2o$
177bo4bo301bobo$177bo2b2ob4o6bo23b2o267bo14bo42bo$176b2obobobo2bo5bobo
22bo268b2o13b3o38b3o15bo$177bobobobo9bo14b2o8b3o29bobo30b2o209bo9bo36b
o18b3o6b2o$177bobob2o25bo11bo27bo5bo28bobo208b3o6b2o23b2o11b2o20bo6bo$
178bo30b3o55b2o16bo211bo30b2o32b2o6bobo$211bo35bo3bo3bo12bo16b2o50b2o
157b2o73b2o$191b2o57bo14b3o6bo53b2o7b2o$182b2o7bo3b2o32b2o16bo3b3o2bo
8bo7bobo53bo$182b2o5bobo2bobo33bo22bo20bo54bobo144b2o106b2o$189b2o3bo
32b3o18bo7bo73b2o135b2o7b2o106bobo$193b2o32bo22bo62bo32b2o120bo90b2o
25bo$209b2o41bobo56b3o32bo121bobo88b2o25b2o$209bobo52b2o21bo22bo33bobo
122b2o$211bo52b2o21b3o20b2o32b2o106bo32b2o5bo23b2o$202b2o7b2o40b2o35bo
159b3o32bo5bobo22bo$202b2o50bo34b2o38bo75bo20bo22bo33bobo6bo14b2o8b3o
62b2o$179b2o73bobo72b3o72bobo7bo11b3o20b2o32b2o22bo11bo62bobo$180bo74b
2o63bo11bo72bo6b3o14bo78b3o55b2o16bo$177b3o140b3o8b2o14bo45b2o16bo16b
2o38bo41bo38b2o16bo16b2o$177bo145bo22bobo45bo16b2o55b3o78bo14b3o6bo$
322b2o23bo46bobo62bo11bo22b2o32b2o20b3o11bo7bobo$395b2o62b3o8b2o14bo6b
obo33bo22bo20bo$192b2o58b2o25b2o181bo22bobo5bo32b3o$193bo59bo25b2o180b
2o23bo5b2o32bo$193bobo57bobo252b2o$194bo59b2o135b2o25b2o88bobo$392bo
25b2o90bo$392bobo106b2o7b2o$267b2o73b2o49b2o106b2o$267bobo6b2o32b2o30b
o$212b2o55bo6bo20b2o11b2o23b2o6b3o$212bo56b2o6b3o18bo36bo9bo60b2o73b2o
$210bobo66bo15b3o38b3o67bobo6b2o32b2o30bo$210b2o83bo42bo69bo6bo20b2o
11b2o23b2o6b3o$408b2o6b3o18bo36bo9bo$314b2o102bo15b3o38b3o13b2o$315bo
118bo42bo14bo$265b2o45b3o177bobo$265bobo44bo140b2o38b2o$267bo186bo$
267b2o135b2o45b3o$404bobo44bo$406bo$406b2o103b2o$511bo$192b2o15b2o38b
2o258bobo$191bobo15b2o37bobo258b2o$191bo25b2o29bo25b2o$190b2o25bo29b2o
25bo113b2o$215bobo37b2o15bobo112bobo$122bo92b2o38b2o15b2o113bo25b2o$
122b3o261b2o25bo$125bo268b2o15bobo$124b2o268b2o15b2o2$197b2o$113b2ob2o
80bo$113b2obo81bobo$116bo82b2o290b2o15b2o$116b3o4b2o365bobo15b2o$114b
2o3bo3b2o365bo25b2o$113bo2b4o369b2o25bo$113b2obo15b2o120b2o258bobo$
114bo2b3o12bobo51bo66bobo258b2o$114bo5bo13bo6bo44b3o6b2o56bo$115b5o14b
2o3b3o47bo6bo55b2o139b2o$117bo20bo49b2o6bobo193bobo$138b2o57b2o193bo$
158bo232b2o103b2o$108b2o3b2o42bobo337bo$106b3obo2b2o31b2ob2o6bobo50b2o
58b2o180bo44bobo$105bo4bo36bob2o7bo51bobo57bobo177b3o45b2o$105bo2b2ob
4o32bo37b2o25bo59bo176bo$104b2obobobo2bo24b2o4b3o37b2o25b2o58b2o135b2o
38b2o$105bobobobo27b2o3bo3b2o259bobo$73bo31bobob2o33b4o2bo260bo14bo42b
o$73b3o30bo23b2o15bob2o260b2o13b3o38b3o15bo$76bo52bobo12b3o2bo25bobo
30b2o209bo9bo36bo18b3o6b2o$75b2o42b2o8bo13bo5bo23bo5bo28bobo208b3o6b2o
23b2o11b2o20bo6bo$110b2o7bo8b2o14b5o43b2o16bo211bo30b2o32b2o6bobo$110b
2o5bobo26bo25bo3bo3bo12bo16b2o50b2o157b2o73b2o$64b2ob2o48b2o56bo14b3o
6bo53b2o7b2o$64b2obo104bo3b3o2bo8bo7bobo53bo$67bo110bo20bo54bobo144b2o
106b2o$67b3o4b2o43bo53bo7bo73b2o135b2o7b2o106bobo$65b2o3bo3b2o43b3o53b
o62bo32b2o120bo90b2o25bo$64bo2b4o51bo54bobo56b3o32bo121bobo88b2o25b2o$
64b2obo15b2o36b2o66b2o21bo22bo33bobo122b2o$65bo2b3o12bobo21b2o80b2o21b
3o20b2o32b2o106bo32b2o5bo23b2o$65bo5bo13bo22bo69b2o35bo159b3o32bo5bobo
22bo$66b5o14b2o18b3o71bo34b2o38bo75bo20bo22bo33bobo6bo14b2o8b3o62b2o$
68bo36bo73bobo72b3o72bobo7bo11b3o20b2o32b2o22bo11bo62bobo$180b2o63bo
11bo72bo6b3o14bo78b3o55b2o16bo$245b3o8b2o14bo45b2o16bo16b2o38bo41bo38b
2o16bo16b2o$131b2o115bo22bobo45bo16b2o55b3o78bo14b3o6bo$124b2o5bobo
113b2o23bo46bobo62bo11bo22b2o32b2o20b3o11bo7bobo$124b2o7bo186b2o62b3o
8b2o14bo6bobo33bo22bo20bo$133b2o42b2o25b2o181bo22bobo5bo32b3o$178bo25b
2o180b2o23bo5b2o32bo$120bo57bobo252b2o$119bobob2o54b2o135b2o25b2o88bob
o$119bobobobo191bo25b2o90bo$118b2obobobo2bo188bobo106b2o7b2o$119bo2b2o
b4o63b2o73b2o49b2o106b2o$119bo4bo67bobo6b2o32b2o30bo$120b3obo2b2o65bo
6bo20b2o11b2o23b2o6b3o$122b2o3b2o65b2o6b3o18bo36bo9bo60b2o73b2o$204bo
15b3o38b3o67bobo6b2o32b2o30bo$220bo42bo69bo6bo20b2o11b2o23b2o6b3o$333b
2o6b3o18bo36bo9bo$239b2o102bo15b3o38b3o13b2o$240bo118bo42bo14bo$190b2o
45b3o177bobo$190bobo44bo140b2o38b2o$120bo71bo186bo$120b3o69b2o135b2o
45b3o$123bo205bobo44bo$122b2o207bo$331b2o103b2o$93b2o3b2o15b2o17b2o
300bo$93b2o2bob3o14bo17bo39b2o258bobo$97bo4bo13bobo13bobo38bobo258b2o$
93b4ob2o2bo14b2o13b2o39bo25b2o$93bo2bobobob2o68b2o25bo113b2o$96bobobob
o77b2o15bobo112bobo$97b2obobo77b2o15b2o113bo25b2o54b2o3b2o$101bo209b2o
25bo53b3obo2b2o$125bo193b2o15bobo52bo4bo$87b2o35bobo192b2o15b2o53bo2b
2ob4o$88bo7b2o26bobo263b2obobobo2bo$88bobo5b2o27bo20b2o243bobobobo$89b
2o55bo244bobob2o$144bobo245bo$144b2o270b2o15b2o$405b2o8bobo15b2o$396b
2o7bo9bo25b2o$396b2o5bobo8b2o25bo$179b2o222b2o34bobo$99b2o77bobo258b2o
$99bo78bo$100b3o74b2o139b2o$31bo70bo214bobo$31b3o109b2o172bo$34bo108b
2o171b2o103b2o$33b2o358b2o27bo$48b2o344bo27bobo$48bo342b3o29b2o$46bobo
82bo259bo$35bo10b2o82bobo201b2o$34bobo94b2o201bobo$34bobo299bo$29b2o4b
o300b2o$28bobo15b2o20bo$28bo17bobo17b5o14b2o$27b2o19bo16bo5bo13bo$48b
2o15bo2b3o12bobo101b2o$64b2obo15b2o93b2o7b2o52b2o$64bo2b4o108bo61b2o$
65b2o3bo3b2o43b2o58bobo144b2o96b2o15b2o$67b3o4b2o42bobo59b2o135b2o7b2o
96b2o15bobo$67bo50bo77b2o41b2o77bo124bo$37b2o25b2obo49b2o77bo42b2o77bo
bo122b2o$37b2o25b2ob2o71b2o52bobo29b2o91b2o$140bobo51b2o31bo74bo32b2o$
142bo84bobo70b3o32bo$75b2o65b2o35bo48b2o46bo22bo33bobo$76bo102b3o42b2o
50b3o20b2o32b2o$73b3o94bo11bo41b2o53bo$73bo70bo9bo15b3o8b2o14bo80b2o
38bo$144b3o5b3o18bo22bobo119b3o$147bo3bo20b2o23bo111bo11bo$49b2o95b2o
3b2o156b3o8b2o14bo$49bo152bo109bo22bobo$47bobo150b3o108b2o23bo$47b2o
150bo37b2o$199b2o36b2o29b2o$147bo82b2o36b2o$4bo143bo80bo2bo$2b5o14b2o
53b2o68b3o58b2ob2o18b2o$bo5bo13bo39bo15bo82b2o46bob2o45bo171b2o$bo2b3o
12bobo29b2o6b3o15bobo80b2o23b2o21bo47bobo169bo2bo$2obo15b2o30bo6bo19b
2o68b2o35bo14b2o4b3o47b2o73b2o96b2o$o2b4o42bobo6b2o87bo2bo35b3o11b2o3b
o3b2o54b2o32b2o30bo$b2o3bo3b2o37b2o91b2o4b2o38bo16b4o2bo53bo20b2o11b2o
23b2o6b3o$3b3o4b2o129bobo47b2o15bob2o54bo20bo36bo9bo$3bo95b2o40bo48bob
o12b3o2bo54b2o17b3o38b3o$2obo32b2o61b2o39b2o48bo13bo5bo19b2o52bo42bo$
2ob2o30bobo112b2o37b2o14b5o20b2o$35bo25b2o87bo56bo95b2o$34b2o25b2o82bo
5b3o150bo$11b2o17bo114b3o5bo147b3o$12bo17b3o115bo152bo$9b3o21bo113b2o$
9bo22b2o2$54b2o80b2ob2o36bo$54bo16b2o63b2obo37b3o$48bo6b3o14bo66bo40bo
$47bobo7bo11b3o67b3o4b2o31b2o$48bo20bo67b2o3bo3b2o$42b2o45b2o45bo2b4o$
35b2o5bobo44b2o45b2obo15b2o$35b2o7bo92bo2b3o12bobo$44b2o91bo5bo13bo$
138b5o14b2o$31bo108bo48b2o$30bobob2o146b2o5bobo$30bobobobo145b2o7bo$
29b2obobobo2bo151b2o$30bo2b2ob4o$30bo4bo142bo$31b3obo2b2o137bobob2o$
33b2o3b2o137bobobobo$176b2obobobo2bo$177bo2b2ob4o$177bo4bo$178b3obo2b
2o$180b2o3b2o4$179bo$177b3o$176bo$176b2o7$166b2o$165bobo5b2o$165bo7b2o
$164b2o2$178bo$174b2obobo$173bobobobo$170bo2bobobob2o$170b4ob2o2bo$
174bo4bo$170b2o2bob3o$170b2o3b2o51$223bo$223b3o$226bo$225b2o7$235b2o$
228b2o5bobo$228b2o7bo$237b2o2$224bo$223bobob2o$223bobobobo$222b2obobob
o2bo$223bo2b2ob4o$223bo4bo$224b3obo2b2o$226b2o3b2o!
To get higher periods, add a cell to complete some of the circled "ghost eaters".

For bigger multipliers than 256, add more bits to the chain.

To get other periods besides 7852 x [1..256] + 196, you can change the length of the base loop by adjusting the Snarks at the low end, or replacing Snarks with other reflectors to get something besides 7852+8N. Or you can change the adjustment delay instead, along the left edge.

It may also be necessary to adjust the timing of the base-loop glider suppressor, of course. Otherwise the adjusted glider might get suppressed instead of the original, or there might be various kinds of ugly collisions. This seems to be where the remaining difficult math is, so I hope you can write a script to take care of most of the problem...!

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » April 1st, 2014, 2:15 pm

I really didn't get the problem you're trying to solve in your last comment...

Anyway here is first script for 3 bits. It works for each period in zone from around 9k to 30k.

It's kinda "ground", a little bit more work and it will work for any period above 9k.

Just copy-paste the script.

Code: Select all

import golly as g
from glife import *
import random



class Glider:
	def __init__(self, x, y, dx, dy, gen, state):
		self.x = x
		self.y = y
		self.gen = gen
		self.state = state 
		self.dx = dx
		self.dy = dy
	def Place(self):
		gld = g.parse("3o$2bo$bo!", 0, 0, self.dx, 0, 0, self.dy)
		gld = g.evolve(gld, self.state)
		g.putcells(gld, self.x, self.y)
	def PlaceD(self, deltax, deltay):
		gld = g.parse("3o$2bo$bo!", 0, 0, self.dx, 0, 0, self.dy)
		gld = g.evolve(gld, self.state)
		g.putcells(gld, self.x + deltax, self.y + deltay)
		
	def Description(self):
		return " x {0} , y {1} , gen {2} , state {3}, dx {4}, dy {5} ".format(self.x, self.y, self.gen, self.state, self.dx, self.dy)
	
	def NextIter(self):
		if(self.state < 3):
			self.state += 1
		else:
			self.x += self.dx
			self.y -= self.dy
			self.state = 0
		self.gen += 1
		
	def PrevIter(self):
		if(self.state > 0):
			self.state -= 1
		else:
			self.x -= self.dx
			self.y += self.dy
			self.state = 3
		self.gen -= 1
		
	def NextIters(self, n):
		
		if n == 0: 
			return
		
		if n > 0: 
			for x in xrange(0, n):
				self.NextIter()
		
		if n < 0: 
			for x in xrange(0, -n):
				self.PrevIter()
				
	def BringToGeneration(self, n):
		self.NextIters(n - self.gen)
		
class Snark:
	def __init__(self, glider, dist, isRight):
		self.glider = glider
		self.dist = dist
		self.isRight = isRight ^ (glider.dx == 1) ^ (glider.dy == 1)
		
		self.x = glider.x + dist * glider.dx 
		self.y = glider.y - dist * glider.dy 
		
		if self.isRight:
			self.outputGlider = Glider(self.x + 7 * self.glider.dx, self.y, self.glider.dx, -self.glider.dy, 32 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
		else: 
			self.outputGlider = Glider(self.x, self.y - 9 * self.glider.dy, -self.glider.dx, self.glider.dy, 40 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
			
	def Place(self):
		if self.isRight:
			mir = g.parse("5$8b2o3b2o$8b2o2bob3o$12bo4bo$8b4ob2o2bo$8bo2bobobob2o$11bobobobo$12b2obobo$16bo2$2b2o$3bo7b2o$3bobo5b2o$4b2o7$14b2o$14bo$15b3o$17bo!", -10, -20, 1, 0, 0, 1)
		else:
			mir = g.parse("14$22bo$4b2o14b5o$5bo13bo5bo$5bobo12b3o2bo$6b2o15bob2o$20b4o2bo$15b2o3bo3b2o$15b2o4b3o$23bo$23bob2o$22b2ob2o3$14b2o$14bo$15b3o$17bo!", -10, -20, 1, 0, 0, 1)
			
		mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
		g.putcells(mir, self.x, self.y) 

class StaticMirror:
	def __init__(self, glider, dist, isRight):
		self.glider = glider
		self.dist = dist
		self.isRight = isRight ^ (glider.dx == 1) ^ (glider.dy == 1)
		
		self.x = glider.x + dist * glider.dx 
		self.y = glider.y - dist * glider.dy 
		
		if self.isRight:
			self.outputGlider = Glider(self.x + 78 * self.glider.dx, self.y - 10 * self.glider.dy, self.glider.dx, -self.glider.dy, 359 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
		else: 
			self.outputGlider = Glider(self.x + 10 * self.glider.dx, self.y - 80 * self.glider.dy, -self.glider.dx, self.glider.dy, 351 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
			
	def Place(self):
		if self.isRight:
			mir = g.parse("12$69b2o$69b2o9$84b2o$84b2o10$64b2o$65bo$62b3o$13b2o47bo$14bo$14bobo$15b2o8$18bo34bo$16b3o32b3o$15bo34bo$15b2o33b2o20b2o$5b2o56b2o7b2o$6bo57bo$6bobo55bobo$7b2o4b2o44b2o4b2o$12bo2bo44bo20b2o$13b2o45bobo18bo$25b2o34b2o16bobo$25b2o52b2o8$11b2o3b2o32b2o$12bo3bo20b2o11b2o$9b3o5b3o18bo$9bo9bo15b3o35b2o$35bo37b2o2b2o$77bobo$79bo$79b2o5$48b2o$49bo$46b3o$46bo!", -10, -60, 1, 0, 0, 1)
		else:
			mir = g.parse("7$58b2o$58b2o2$26bo$24b3o$8bo14bo$8b3o12b2o$11bo$10b2o3$11b2o$11b2o17b2o$30b2o2$68b2o$68b2o3$27b2o$27bo19b2o$28b3o15bobo$30bo15bo$24b2o19b2o$24bo$25b3o$27bo6$33b2o$33bo$14b2o15bobo$14b2o15b2o$2b2o$bobo$bo$2o8$13b2o$12bobo$12bo$11b2o9$23b2o$23b2o6$12b2o$13bo19b2o$13bobo17bo$14b2o15bobo8b2o$26bo4b2o9bo$25bobo15b3o$25bobo17bo$14b2o10bo$13bobo$13bo$12b2o$27b2o$27bo$28b3o$30bo!", -20, -80, 1, 0, 0, 1)
			
		mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
		g.putcells(mir, self.x, self.y) 

class ColorSwitch:
	def __init__(self, glider, dist):
		self.glider = glider
		self.dist = dist
		
		self.x = glider.x + dist * glider.dx 
		self.y = glider.y - dist * glider.dy 
		
		self.outputGlider = Glider(self.x + 79 * self.glider.dx, self.y - 50 * self.glider.dy, self.glider.dx, self.glider.dy, 368 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
			
	def Place(self):
		mir = g.parse("5$66b2o$66b2o11$80b2o$80bobo$82bo$82b2o6$61b2o$62bo$59b3o$59bo3$13b2o$14bo$14bobo$15b2o61b2o$78bo$79b3o$81bo2$15bo34bo$13b3o32b3o$12bo34bo$12b2o33b2o20b2o$2b2o56b2o7b2o$3bo57bo$3bobo55bobo$4b2o4b2o44b2o4b2o$9bo2bo44bo20b2o$10b2o45bobo18bo$22b2o34b2o16bobo$22b2o52b2o8$8b2o3b2o32b2o$9bo3bo20b2o11b2o$6b3o5b3o18bo$6bo9bo15b3o35b2o$32bo37b2o2b2o$74bobo$76bo$2b2o72b2o$2bobo$4bo$4b2o2$45b2o$46bo$43b3o$43bo!", 0, -60, 1, 0, 0, 1)
		mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
		g.putcells(mir, self.x, self.y) 
		
class UniversalGliderGun():
	def __init__(self, x, y, period):
		self.x = x
		self.y = y
		self.period = period
	
	def PlaceStart(self, turnOnBit): 
		startPart = g.parse("6$44bo$43bobo$43bobo$44bo18$64b2o$65bo$65bobo$66b2o5$63b2o$64bo$64bobo$65b2o18$104b2o3b2o$102b3obo2b2o$60b2o39bo4bo$59bobo39bo2b2ob4o$59bo25b2o13b2obobobo2bo$58b2o25bo15bobobobo$66b2o15bobo15bobob2o$66b2o15b2o17bo2$115b2o$106b2o7bo$106b2o5bobo$113b2o7$65b2o36b2o$64bobo37bo$64bo36b3o$63b2o36bo2$103b2o3b2o$103b2o2bob3o$107bo4bo$103b4ob2o2bo$103bo2bobobob2o$106bobobobo$107b2obobo$75b2o34bo$75b2o$87b2o8b2o$87bobo8bo7b2o$89bo8bobo5b2o$89b2o8b2o2$64b2o$65bo19b2o$65bobo17bo56bo$66b2o15bobo38b2o14b5o$70b2o6bo4b2o40bo13bo5bo$69bo2bo4bobo29b2o14bobo12b3o2bo$70b2o5bobo29bo16b2o15bob2o$66b2o10bo31b3o27b4o2bo$65bobo44bo22b2o3bo3b2o$65bo69b2o4b3o$64b2o77bo$79b2o62bob2o$79bo62b2ob2o$80b3o$82bo$98b2o34b2o$99bo34bo$99bobo33b3o$100b2o2b2o31bo5bo$104b2o35b3o15bo9bo$140bo18b3o5b3o$127b2o11b2o20bo3bo$127b2o32b2o3b2o8$40bo57b2o52b2o$38b5o14b2o38bobo16b2o34b2o$37bo5bo13bo39bo18bobo45b2o$37bo2b3o12bobo38b2o20bo44bo2bo$36b2obo15b2o55b2o4b2o44b2o4b2o$36bo2b4o69bobo55bobo$37b2o3bo3b2o66bo57bo$39b3o4b2o57b2o7b2o56b2o$39bo65b2o20b2o33b2o$36b2obo88bo34bo$36b2ob2o84b3o32b3o$125bo34bo2$47b2o$48bo$45b3o47b2o$45bo50bo$96bobo$97b2o2$49bo$47b3o$46bo69bo$46b2o66b3o$113bo$113b2o5$36b2o$35bobo5b2o47b2o$35bo7b2o48bo$34b2o57bobo$94b2o$48bo39bo$44b2obobo38b3o$43bobobobo41bo$40bo2bobobob2o39b2o$40b4ob2o2bo$44bo4bo$40b2o2bob3o$40b2o3b2o3$100b2o6b2o$93b2o5bobo5b2o$93b2o7bo$102b2o2$89bo$88bobob2o$88bobobobo$87b2obobobo2bo$88bo2b2ob4o$88bo4bo$89b3obo2b2o$91b2o3b2o26$238bo$236b3o$235bo$235b2o7$225b2o$224bobo5b2o$224bo7b2o$223b2o2$237bo$233b2obobo$232bobobobo$229bo2bobobob2o$229b4ob2o2bo$233bo4bo$229b2o2bob3o$229b2o3b2o!", 0, -60, 1, 0, 0, 1)		
		g.putcells(startPart, self.x, self.y) 
		
		if turnOnBit:
			blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
			g.putcells(blocker, self.x, self.y) 
	
	def PlaceEnd(self, turnOnBit, numBits): 
		startPart = g.parse("121bo$81b2o38b3o$82bo41bo14bo$82bobo38b2o12b3o$83b2o2b2o47bo$87b2o47b2o3$135b2o$116b2o17b2o$116b2o6$81b2o36b2o$80bobo16b2o19bo$80bo18bobo15b3o$79b2o20bo15bo$95b2o4b2o19b2o$95bobo25bo$97bo22b3o$88b2o7b2o21bo$88b2o7$78b2o$79bo$79bobo$80b2o$96bo$94b3o$93bo$93b2o28b2o$122bobo$122bo29b2o$121b2o29bobo$61b2o91bo$38bo23bo64b2o25b2o$36b3o23bobo61bobo4b2o$35bo27b2o61bo7bo$35b2o88b2o4b3o$131bo$12bo42bo83b2o$12b3o38b3o44b2o36bobo$5bo9bo36bo47b2o36bo$5b3o6b2o23b2o11b2o83b2o$8bo30b2o$7b2o$95b2o$95b2o$99b2o54b2o$99b2o54bobo$157bo$157b2o$64b2o27b2o$3bo23b2o35b2o11b2o14b2o$2bobo22bo49bo$3bo14b2o8b3o47b3o$18bo11bo49bo$19b3o$21bo125b2o$138b2o7b2o$5b2o32b2o98bo$4bobo33bo98bobo$4bo32b3o100b2o$3b2o32bo85bo32b2o$19b2o100b3o32bo$19bobo52b2o21bo22bo33bobo$21bo52b2o21b3o20b2o32b2o$12b2o7b2o40b2o35bo$12b2o50bo34b2o38bo$64bobo72b3o$65b2o63bo11bo$130b3o8b2o14bo$133bo22bobo$132b2o23bo2$2b2o58b2o25b2o$3bo59bo25b2o$3bobo57bobo$4b2o58b2o3$77b2o$77bobo6b2o32b2o$22b2o55bo6bo20b2o11b2o23b2o23bo$22bo56b2o6b3o18bo36bo22b3o$20bobo66bo15b3o38b3o18bo$20b2o83bo42bo18b2o2$124b2o$125bo49b2ob2o$75b2o45b3o51bob2o$75bobo44bo53bo$77bo90b2o4b3o$77b2o89b2o3bo3b2o$173b4o2bo$159b2o15bob2o$158bobo12b3o2bo$158bo13bo5bo$2b2o15b2o38b2o96b2o14b5o$bobo15b2o37bobo114bo$bo25b2o29bo25b2o129b2o$2o25bo29b2o25bo131bo$25bobo37b2o15bobo131bobo$25b2o38b2o15b2o133b2o$242b2o$242b2o2$210bo$208b3o$192bo14bo$192b3o12b2o$195bo$194b2o3$64b2o129b2o$63bobo129b2o17b2o$63bo150b2o$62b2o$252b2o$252b2o3$20b2o58b2o129b2o$20bobo57bobo128bo19b2o$22bo59bo40bo88b3o15bobo$22b2o58b2o39b3o88bo15bo$126bo81b2o19b2o$125b2o81bo$209b3o$18b2o191bo$18bobo93b2ob2o$20bo93b2obo$20b2o50b2o43bo$63b2o7b2o43b3o4b2o$64bo50b2o3bo3b2o$64bobo47bo2b4o96b2o$65b2o47b2obo15b2o82bo$48bo32b2o32bo2b3o12bobo62b2o15bobo$46b3o32bo33bo5bo13bo62b2o15b2o$22bo22bo33bobo34b5o14b2o$22b3o20b2o32b2o37bo$25bo$24b2o38bo$64b3o$55bo11bo$55b3o8b2o14bo$58bo22bobo$57b2o23bo3$197b2o$196bobo$196bo$195b2o2$77b2o$45b2o30bo$32b2o11b2o23b2o6b3o$33bo36bo9bo$30b3o38b3o82b2o$30bo42bo82b2o2$49b2o156b2o$50bo156b2o$47b3o93b2o$47bo96bo$144bobo$145b2o2$196b2o$197bo19b2o5b2o$163b2o32bobo17bo6bo$163b2o15bo17b2o15bobo7b3o$178b3o29bo4b2o10bo$145b2o30bo31bobo$144bobo30b2o30bobo$144bo53b2o10bo$143b2o52bobo$197bo$196b2o$211b2o$154b2o55bo$153bobo56b3o$153bo60bo$152b2o5$174b2o$174bobo$176bo$176b2o17$215b2o$216bo$216bobo$217b2o$242b2o$242b2o2$210bo$208b3o$192bo14bo$192b3o12b2o$195bo$194b2o3$195b2o$195b2o17b2o$214b2o2$252b2o$252b2o3$211b2o$211bo19b2o$212b3o15bobo$214bo15bo$208b2o19b2o$208bo$209b3o$211bo6$217b2o$217bo$198b2o15bobo$198b2o15b2o12$197b2o$196bobo$196bo$195b2o9$207b2o$207b2o6$196b2o$197bo19b2o5b2o$197bobo17bo6bo$198b2o15bobo7b3o$210bo4b2o10bo$209bobo$209bobo$198b2o10bo$197bobo$197bo$196b2o$211b2o$211bo$212b3o$214bo!", 1, -108, 1, 0, 0, 1)		
		g.putcells(startPart, self.x + 75 * numBits, self.y - numBits * 75) 
		
		if turnOnBit:
			blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
			g.putcells(blocker, self.x + 75 * numBits, self.y - numBits * 75) 
	
	def PlaceBitStream(self, blocks): 
		d = 0
		
		for toBlock in blocks:
			bit = g.parse("87b2o$88bo$43bo44bobo$41b3o45b2o$40bo$40b2o2$17bo42bo$17b3o38b3o15bo$10bo9bo36bo18b3o6b2o$10b3o6b2o23b2o11b2o20bo6bo$13bo30b2o32b2o6bobo$12b2o73b2o5$75b2o$75b2o2$8bo23b2o$7bobo22bo$8bo14b2o8b3o$23bo11bo$24b3o55b2o$26bo56bo$80b3o6bo$10b2o32b2o34bo7bobo$9bobo33bo43bo$9bo32b3o$8b2o32bo$24b2o$24bobo52b2o$26bo52b2o$17b2o7b2o40b2o$17b2o50bo$69bobo$70b2o5$7b2o58b2o25b2o$8bo59bo25b2o$8bobo57bobo$9b2o58b2o3$82b2o$82bobo6b2o$27b2o55bo6bo$27bo56b2o6b3o$25bobo66bo$25b2o4$80b2o$80bobo$82bo$82b2o5$7b2o15b2o38b2o$6bobo15b2o37bobo$6bo25b2o29bo25b2o$5b2o25bo29b2o25bo$30bobo37b2o15bobo$30b2o38b2o15b2o5$12b2o$13bo$13bobo$14b2o4$69b2o$bo66bobo$b3o6b2o56bo$4bo6bo55b2o$3b2o6bobo$12b2o3$25b2o58b2o$25bobo57bobo$2o25bo59bo$2o25b2o58b2o4$23b2o$23bobo$7b2o16bo$8bo16b2o50b2o$5b3o6bo53b2o7b2o$5bo7bobo53bo$14bo54bobo$70b2o$53bo32b2o$51b3o32bo$4b2o21bo22bo33bobo$4b2o21b3o20b2o32b2o$30bo$29b2o38bo$69b3o$60bo11bo$60b3o8b2o14bo$63bo22bobo$62b2o23bo2$19b2o$19b2o5$7b2o73b2o$7bobo6b2o32b2o30bo$9bo6bo20b2o11b2o23b2o6b3o$9b2o6b3o18bo36bo9bo$19bo15b3o38b3o$35bo42bo2$54b2o$55bo$5b2o45b3o$5bobo44bo$7bo$7b2o!", 71, -142, 1, 0, 0, 1)		
			g.putcells(bit, self.x + d, self.y - d) 
			
			if toBlock: 
				blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
				g.putcells(blocker,self.x + 75 + d, self.y - 75 - d) 
				
			d += 75
	def PlaceReflector(self): 
		blocker = g.parse("9b2o$10bo$10bobo$11b2o2b2o37bo$15b2o35b3o15bo9bo$51bo18b3o5b3o$38b2o11b2o20bo3bo$38b2o32b2o3b2o8$9b2o52b2o$8bobo16b2o34b2o$8bo18bobo45b2o$7b2o20bo44bo2bo$23b2o4b2o44b2o4b2o$23bobo55bobo$25bo57bo$16b2o7b2o56b2o$o15b2o20b2o33b2o$3o36bo34bo$3bo32b3o32b3o$2b2o32bo34bo6$71b2o$71bobo$73bo$73b2o2$27bo$25b3o$24bo$24b2o10$4b2o$4b2o9$19b2o$19b2o!", 263,-15, 1, 0, 0, 1)
		g.putcells(blocker, self.x - 112, self.y + 112) 
	
	def HoldBackCalculator(self, mod8Value): 
		if mod8Value == 0: 
			return 8248
		
		if mod8Value == 1:
			return 8281
		
		if mod8Value == 2:
			return 8642

		if mod8Value == 3:
			return 8115
		
		if mod8Value == 4:
			return 8212
		
		if mod8Value == 5:
			return 8045
		
		if mod8Value == 6:
			return 8414
		
		if mod8Value == 7:
			return 8559
			
	def PlaceHoldMechanism(self, period0):
		
		mod8Value = period0 % 8 
		Mod8Multiplier = (period0 - self.HoldBackCalculator(mod8Value)) / 8
		
		
		if mod8Value == 0: 
			
			golly.select( [self.x +111 + 75,self.y-140 - 75,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113 + 75,self.y -140 - 75, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			snk = Snark(snk.outputGlider, 15 + Mod8Multiplier, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = Snark(sw.outputGlider, 88 + 75, False)
			snk.Place()
			return 8248 + 8 * Mod8Multiplier
		
		if mod8Value == 1:
		
			golly.select( [self.x +111,self.y -140,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113, self.y -140, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			snk = Snark(snk.outputGlider, 15 + Mod8Multiplier, False)
			snk.Place()
			snk = StaticMirror(snk.outputGlider, 122, False)
			snk.Place()
			return 8281 + 8 * Mod8Multiplier
		
		if mod8Value == 2:
			
			golly.select( [self.x +111 + 2 * 75,self.y-140 - 2 * 75,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113 + 2 * 75, self.y-140 - 2 * 75, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			snk = StaticMirror(snk.outputGlider, 15 + Mod8Multiplier, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = StaticMirror(sw.outputGlider, 17 + 2 * 75, False)
			snk.Place()
			return 8642 + 8 * Mod8Multiplier

		if mod8Value == 3:

			golly.select( [self.x +111 + 75,self.y-140 - 75,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113 + 75, self.y-140 - 75, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			snk = Snark(snk.outputGlider, 15 + Mod8Multiplier, False)
			snk.Place()
			snk = StaticMirror(snk.outputGlider, 122 + 75, False)
			snk.Place()
			return 8115 + 8 * Mod8Multiplier
		
		if mod8Value == 4:

			golly.select( [self.x +78,self.y-100,4,4] )
			golly.clear(0)
			gld = Glider(self.x +80, self.y-100, -1,1,0,0)
			snk = Snark(gld, 15 + Mod8Multiplier, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = Snark(sw.outputGlider, 32, False)
			snk.Place()
			return 8212 + 8 * Mod8Multiplier
		
		if mod8Value == 5:

			golly.select( [self.x +81,self.y-133,4,4] )
			golly.clear(0)
			gld = Glider(self.x +82,self.y -133, -1,1,0,0)
			snk = Snark(gld, 15 + Mod8Multiplier, False)
			snk.Place()
			snk = Snark(snk.outputGlider, 124, False)
			snk.Place()
			return 8045 + 8 * Mod8Multiplier
		
		if mod8Value == 6:
		
			golly.select( [self.x +111,self.y-140,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113, self.y-140, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			snk = Snark(snk.outputGlider, 15 + Mod8Multiplier, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = Snark(sw.outputGlider, 88, False)
			snk.Place()
			return 8414 + 8 * Mod8Multiplier
		
		if mod8Value == 7:
		
			golly.select( [self.x +81,self.y-133,4,4] )
			golly.clear(0)
			gld = Glider(self.x +82, self.y-133, -1,1,0,0)
			snk = StaticMirror(gld, 30 + Mod8Multiplier, False)
			snk.Place()
			snk = StaticMirror(snk.outputGlider, 53, False)
			snk.Place()
			return 8559 + 8 * Mod8Multiplier
	
	
	def RotationPeriod(self):
		return 3415
	
	def DoAllCalculations(self):
		period = self.period
		
		if period < self.HoldBackCalculator(period % 8):
			golly.exit("The period is too low")
		
		multiplier = 0 
		
		while period >= self.HoldBackCalculator(period % 8):
			multiplier+=1
			period -= self.RotationPeriod()
		
		if multiplier >= 8:
			golly.exit("Currently there is no support for this period")
		
		bits = 8 - multiplier
		
		endBit = bits < 4
		
		if not endBit: 
			bits -= 4
			
		startBit = bits % 2 == 0
		bits = (bits - bits%2) / 2
		
		middlebits = [bits == 0]
		
		period0 = period + self.RotationPeriod()
		
		return [startBit, middlebits, endBit, 2, period0]
		
	def Place(self): 
		values = self.DoAllCalculations();
		self.PlaceStart(values[0])
		self.PlaceBitStream(values[1])
		self.PlaceEnd(values[2],values[3])
		self.PlaceReflector()
		gld = Glider(167, 63, -1,-1,0,0)
		gld.Place()
		self.PlaceHoldMechanism(values[4])


gen = g.getstring("Enter Gun Period: ")

gun = UniversalGliderGun(0,0,int(gen))
gun.Place()

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » April 1st, 2014, 4:54 pm

simsim314 wrote:Anyway here is first script for 3 bits. It works for each period in zone from around 9k to 30k.
The script seems to work beautifully, up to its current limit at 31949. I'd suggest putting in a g.fit() line at the end, and maybe something like

g.select([0,0,1,1]); g.clear(1)

at the beginning. "g.new(gen)" would be just as good, except you can't undo the work of a script that has g.new() in it... best not to do permanent damage to the current layer, in case someone runs the script by mistake. Or you could just add a new layer instead, of course.
simsim314 wrote:I really didn't get the problem you're trying to solve in your last comment...
Well, it might have been an imaginary problem. It was related to the idea of reducing the area of the timing-adjustment circuit -- this current script builds some pretty big loops off to the northwest. Do you have plans to cut those down to size, maybe by adding as many back-and-forth reflections as needed to bring the distance down to something reasonable?

I tried this for p27777, and it doesn't look as if adding Snarks would cause any new synchronization problems:

Code: Select all

#C thinner p27777 gun at the cost of six more Snarks
x = 528, y = 460, rule = B3/S23
320b2o3b2o$318b3obo2b2o$317bo4bo$317bo2b2ob4o$316b2obobobo2bo$317bobob
obo$317bobob2o$318bo2$331b2o$322b2o7bo$322b2o5bobo$329b2o7$319b2o$320b
o$317b3o19bo$317bo2b3o14b5o$319bo2bo13bo5bo$318b2o2bobo12b3o2bo$323b2o
15bob2o$337b4o2bo$332b2o3bo3b2o$332b2o4b3o$340bo$340bob2o$339b2ob2o$
395bo$355b2o38b3o$331b2o23bo41bo14bo$331bo24bobo38b2o12b3o$332b3o22b2o
2b2o47bo$334bo26b2o47b2o3$409b2o$390b2o17b2o$390b2o6$355b2o36b2o$354bo
bo16b2o19bo$354bo18bobo15b3o$353b2o20bo15bo$369b2o4b2o19b2o$369bobo25b
o$371bo22b3o$362b2o7b2o21bo$362b2o4$196b2o3b2o$194b3obo2b2o$193bo4bo$
193bo2b2ob4o149b2o$192b2obobobo2bo150bo$193bobobobo153bobo$193bobob2o
155b2o$194bo175bo$368b3o$207b2o158bo$198b2o7bo159b2o28b2o$140bo57b2o5b
obo188bobo$138b3o64b2o189bo29b2o$137bo257b2o29bobo$137b2o196b2o91bo$
312bo23bo64b2o25b2o$178b2o130b3o23bobo61bobo4b2o$179bo129bo27b2o61bo7b
o$179bobo127b2o88b2o4b3o$106b2o72b2o13b2o208bo$107bo88bo89bo42bo83b2o$
107bobo83b3o90b3o38b3o44b2o36bobo$108b2o2b2o37bo41bo85bo9bo36bo47b2o
36bo$112b2o35b3o15bo9bo101b3o6b2o23b2o11b2o83b2o$148bo18b3o5b3o104bo
30b2o$135b2o11b2o20bo3bo106b2o$135b2o32b2o3b2o193b2o$369b2o$222bo150b
2o54b2o$204b2o14b5o148b2o54bobo$205bo13bo5bo205bo$205bobo12b3o2bo205b
2o$206b2o15bob2o111b2o27b2o$220b4o2bo50bo23b2o35b2o11b2o14b2o$106b2o
52b2o53b2o3bo3b2o50bobo22bo49bo$105bobo16b2o34b2o53b2o4b3o53bo14b2o8b
3o47b3o$105bo18bobo45b2o49bo68bo11bo49bo$104b2o20bo44bo2bo48bob2o66b3o
$120b2o4b2o44b2o4b2o42b2ob2o68bo38b2o85b2o$120bobo55bobo153bo77b2o7b2o
$122bo57bo98b2o32b2o20b3o75bo$113b2o7b2o56b2o32b2o62bobo33bo22bo75bobo
$113b2o20b2o33b2o42bo63bo32b3o100b2o$136bo34bo43b3o59b2o32bo85bo32b2o$
133b3o32b3o46bo75b2o100b3o32bo$133bo34bo124bobo52b2o21bo22bo33bobo$
295bo52b2o21b3o20b2o32b2o$102bo183b2o7b2o40b2o35bo$102b3o181b2o50bo34b
2o38bo$105bo232bobo72b3o$104b2o61b2o170b2o63bo11bo$167bobo234b3o8b2o
14bo$169bo237bo22bobo$169b2o61bo173b2o23bo$230b5o14b2o$229bo5bo13bo26b
2o58b2o25b2o$124bo104bo2b3o12bobo27bo59bo25b2o$122b3o103b2obo15b2o28bo
bo57bobo$121bo106bo2b4o43b2o58b2o$121b2o106b2o3bo3b2o$231b3o4b2o$231bo
119b2o$228b2obo119bobo6b2o32b2o$228b2ob2o63b2o55bo6bo20b2o11b2o23b2o
23bo$296bo56b2o6b3o18bo36bo22b3o$100b2o192bobo66bo15b3o38b3o18bo$101bo
137b2o53b2o83bo42bo18b2o$101bobo136bo$102b2o133b3o158b2o$237bo25bo135b
o49b2ob2o$245b2o14b5o83b2o45b3o51bob2o$246bo13bo5bo82bobo44bo53bo$246b
obo12b3o2bo84bo90b2o4b3o$247b2o15bob2o83b2o89b2o3bo3b2o$261b4o2bo179b
4o2bo$256b2o3bo3b2o166b2o15bob2o$256b2o4b3o167bobo12b3o2bo$264bo167bo
13bo5bo$264bob2o8b2o15b2o38b2o96b2o14b5o$116b2o145b2ob2o7bobo15b2o37bo
bo114bo$116b2o157bo25b2o29bo25b2o129b2o$274b2o25bo29b2o25bo131bo$255b
2o42bobo37b2o15bobo131bobo$255bo43b2o38b2o15b2o133b2o$256b3o257b2o$
258bo257b2o2$484bo$281b2o199b3o$282bo183bo14bo$282bobo181b3o12b2o$283b
2o184bo$468b2o3$211bo42bo83b2o129b2o$211b3o38b3o15bo66bobo129b2o17b2o$
204bo9bo36bo18b3o6b2o56bo150b2o$204b3o6b2o23b2o11b2o20bo6bo55b2o$207bo
30b2o32b2o6bobo243b2o$206b2o73b2o243b2o3$294b2o58b2o129b2o$294bobo57bo
bo128bo19b2o$269b2o25bo59bo40bo88b3o15bobo$269b2o25b2o58b2o39b3o88bo
15bo$400bo81b2o19b2o$202bo23b2o171b2o81bo$201bobo22bo256b3o$202bo14b2o
8b3o62b2o191bo$217bo11bo62bobo93b2ob2o$218b3o55b2o16bo93b2obo$220bo56b
o16b2o50b2o43bo$274b3o6bo53b2o7b2o43b3o4b2o$204b2o32b2o34bo7bobo53bo
50b2o3bo3b2o$203bobo33bo43bo54bobo47bo2b4o96b2o$203bo32b3o100b2o47b2ob
o15b2o82bo$202b2o32bo85bo32b2o32bo2b3o12bobo62b2o15bobo$218b2o100b3o
32bo33bo5bo13bo62b2o15b2o$218bobo52b2o21bo22bo33bobo34b5o14b2o$220bo
52b2o21b3o20b2o32b2o37bo$211b2o7b2o40b2o35bo$211b2o50bo34b2o38bo$263bo
bo72b3o$264b2o63bo11bo$329b3o8b2o14bo$332bo22bobo$331b2o23bo2$201b2o
58b2o25b2o$202bo59bo25b2o181b2o$202bobo57bobo205bobo$203b2o58b2o205bo$
469b2o2$276b2o73b2o$276bobo6b2o32b2o30bo$221b2o55bo6bo20b2o11b2o23b2o
6b3o$221bo56b2o6b3o18bo36bo9bo$219bobo66bo15b3o38b3o82b2o$219b2o83bo
42bo82b2o2$323b2o156b2o$324bo156b2o$274b2o45b3o93b2o$274bobo44bo96bo$
276bo141bobo$276b2o141b2o2$470b2o$471bo19b2o5b2o$437b2o32bobo17bo6bo$
9bo191b2o15b2o38b2o177b2o15bo17b2o15bobo7b3o$9b3o188bobo15b2o37bobo
192b3o29bo4b2o10bo$12bo187bo25b2o29bo25b2o134b2o30bo31bobo$11b2o186b2o
25bo29b2o25bo134bobo30b2o30bobo$224bobo37b2o15bobo134bo53b2o10bo$224b
2o38b2o15b2o134b2o52bobo$2ob2o466bo$2obo466b2o$3bo481b2o$3b3o4b2o416b
2o55bo$b2o3bo3b2o194b2o219bobo56b3o$o2b4o200bo219bo60bo$2obo15b2o186bo
bo216b2o$bo2b3o12bobo186b2o$bo5bo13bo$2b5o14b2o$4bo$263b2o183b2o$195bo
66bobo183bobo$195b3o6b2o56bo187bo$198bo6bo55b2o187b2o$197b2o6bobo$206b
2o$167bo$166bobo$166bobo50b2o58b2o$167bo51bobo57bobo$194b2o25bo59bo$
194b2o25b2o58b2o2$52bo$50b5o14b2o$49bo5bo13bo2bo144b2o$49bo2b3o12bobob
2o144bobo$48b2obo15b2obo130b2o16bo$48bo2b4o15bo113b2o16bo16b2o50b2o$
49b2o3bo3b2o10b3o111bo14b3o6bo53b2o7b2o$51b3o4b2o13bo111b3o11bo7bobo
53bo225b2o$51bo20b2o113bo20bo54bobo224bo$48b2obo212b2o224bobo$48b2ob2o
194bo32b2o209b2o$245b3o32bo235b2o$198b2o21bo22bo33bobo235b2o$59b2o137b
2o21b3o20b2o32b2o$60bo126b2o35bo259bo$57b3o22b2o104bo34b2o38bo218b3o$
57bo17b2o5bobo103bobo72b3o200bo14bo$75b2o7bo104b2o63bo11bo199b3o12b2o$
84b2o168b3o8b2o14bo187bo$257bo22bobo185b2o$71bo184b2o23bo$70bobob2o$
70bobobobo109b2o25b2o254b2o$69b2obobobo2bo107bo25b2o254b2o17b2o$70bo2b
2ob4o107bobo298b2o$70bo4bo112b2o$71b3obo2b2o446b2o$73b2o3b2o446b2o$
201b2o73b2o$201bobo6b2o32b2o30bo$203bo6bo20b2o11b2o23b2o6b3o205b2o$
203b2o6b3o18bo36bo9bo205bo19b2o$213bo15b3o38b3o213b3o15bobo$229bo42bo
215bo15bo$482b2o19b2o$248b2o232bo$249bo233b3o$199b2o45b3o236bo$199bobo
44bo$201bo$201b2o3$227b2o3b2o257b2o$225b3obo2b2o257bo$183b2o39bo4bo
242b2o15bobo$182bobo39bo2b2ob4o238b2o15b2o$182bo25b2o13b2obobobo2bo$
181b2o25bo15bobobobo$189b2o15bobo15bobob2o$189b2o15b2o17bo2$238b2o$
229b2o7bo$229b2o5bobo$236b2o3$471b2o$470bobo$470bo$469b2o$188b2o36b2o$
187bobo37bo$187bo36b3o$186b2o36bo2$226b2o3b2o$226b2o2bob3o$230bo4bo$
226b4ob2o2bo245b2o$226bo2bobobob2o244b2o$229bobobobo$230b2obobo$198b2o
34bo$198b2o$210b2o8b2o$210bobo8bo7b2o239b2o$212bo8bobo5b2o240bo19b2o5b
2o$212b2o8b2o247bobo17bo6bo$472b2o15bobo7b3o$187b2o295bo4b2o10bo$188bo
19b2o273bobo$188bobo17bo56bo217bobo$189b2o15bobo38b2o14b5o204b2o10bo$
193b2o6bo4b2o40bo13bo5bo202bobo$192bo2bo4bobo29b2o14bobo12b3o2bo202bo$
193b2o5bobo29bo16b2o15bob2o200b2o$189b2o10bo31b3o27b4o2bo215b2o$188bob
o44bo22b2o3bo3b2o216bo$188bo69b2o4b3o219b3o$187b2o77bo221bo$202b2o62bo
b2o$202bo62b2ob2o$203b3o$205bo$221b2o34b2o$222bo34bo$222bobo33b3o$223b
2o2b2o31bo5bo$227b2o35b3o15bo9bo$263bo18b3o5b3o$250b2o11b2o20bo3bo$
250b2o32b2o3b2o5$289bo$288bo$288b3o$163bo57b2o52b2o$161b5o14b2o38bobo
16b2o34b2o$160bo5bo13bo39bo18bobo45b2o$160bo2b3o12bobo38b2o20bo44bo2bo
$159b2obo15b2o55b2o4b2o44b2o4b2o$159bo2b4o69bobo55bobo$160b2o3bo3b2o
66bo57bo$162b3o4b2o57b2o7b2o56b2o$162bo65b2o20b2o33b2o$159b2obo88bo34b
o$159b2ob2o84b3o32b3o$248bo34bo2$170b2o$171bo$168b3o47b2o$168bo50bo$
219bobo$220b2o2$172bo$170b3o$169bo69bo$169b2o66b3o$236bo$236b2o5$159b
2o$158bobo5b2o47b2o$158bo7b2o48bo$157b2o57bobo64b2o$217b2o65bo$171bo
39bo72bobo$167b2obobo38b3o71b2o2b2o37bo$166bobobobo41bo74b2o35b3o15bo
9bo$163bo2bobobob2o39b2o110bo18b3o5b3o$163b4ob2o2bo139b2o11b2o20bo3bo$
167bo4bo139b2o32b2o3b2o$163b2o2bob3o$163b2o3b2o3$223b2o6b2o$216b2o5bob
o5b2o$216b2o7bo$225b2o56b2o52b2o$282bobo16b2o34b2o$212bo69bo18bobo45b
2o$211bobob2o64b2o20bo44bo2bo$211bobobobo79b2o4b2o44b2o4b2o$210b2obobo
bo2bo76bobo55bobo$211bo2b2ob4o78bo57bo$211bo4bo73b2o7b2o56b2o$212b3obo
2b2o53bo15b2o20b2o33b2o$214b2o3b2o53b3o36bo34bo$277bo32b3o32b3o$276b2o
32bo34bo6$345b2o$345bobo$347bo$347b2o2$301bo$299b3o$298bo$298b2o10$
278b2o81bo$278b2o79b3o$358bo$358b2o7$293b2o53b2o$293b2o52bobo5b2o$347b
o7b2o$346b2o2$360bo$356b2obobo$355bobobobo$352bo2bobobob2o$352b4ob2o2b
o$356bo4bo$352b2o2bob3o$352b2o3b2o!

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » April 1st, 2014, 8:00 pm

OK the linear case is working now + the addition Snarks to make it more compact were added.

Code: Select all

import golly as g
from glife import *
import random


class Glider:
	def __init__(self, x, y, dx, dy, gen, state):
		self.x = x
		self.y = y
		self.gen = gen
		self.state = state 
		self.dx = dx
		self.dy = dy
	def Place(self):
		gld = g.parse("3o$2bo$bo!", 0, 0, self.dx, 0, 0, self.dy)
		gld = g.evolve(gld, self.state)
		g.putcells(gld, self.x, self.y)
	def PlaceD(self, deltax, deltay):
		gld = g.parse("3o$2bo$bo!", 0, 0, self.dx, 0, 0, self.dy)
		gld = g.evolve(gld, self.state)
		g.putcells(gld, self.x + deltax, self.y + deltay)
		
	def Description(self):
		return " x {0} , y {1} , gen {2} , state {3}, dx {4}, dy {5} ".format(self.x, self.y, self.gen, self.state, self.dx, self.dy)
	
	def NextIter(self):
		if(self.state < 3):
			self.state += 1
		else:
			self.x += self.dx
			self.y -= self.dy
			self.state = 0
			self.gen += 1
		
	def PrevIter(self):
		if(self.state > 0):
			self.state -= 1
		else:
			self.x -= self.dx
			self.y += self.dy
			self.state = 3
			self.gen -= 1
		
	def NextIters(self, n):
		
		if n == 0: 
			return
		
		if n > 0: 
			for x in xrange(0, n):
				self.NextIter()
		
		if n < 0: 
			for x in xrange(0, -n):
				self.PrevIter()
			
	def BringToGeneration(self, n):
		self.NextIters(n - self.gen)
		
class Snark:
	def __init__(self, glider, dist, isRight):
		self.glider = glider
		self.dist = dist
		self.isRight = isRight ^ (glider.dx == 1) ^ (glider.dy == 1)
		
		self.x = glider.x + dist * glider.dx 
		self.y = glider.y - dist * glider.dy 
		
		if self.isRight:
			self.outputGlider = Glider(self.x + 7 * self.glider.dx, self.y, self.glider.dx, -self.glider.dy, 32 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
		else: 
			self.outputGlider = Glider(self.x, self.y - 9 * self.glider.dy, -self.glider.dx, self.glider.dy, 40 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
		
	def Place(self):
		if self.isRight:
			mir = g.parse("5$8b2o3b2o$8b2o2bob3o$12bo4bo$8b4ob2o2bo$8bo2bobobob2o$11bobobobo$12b2obobo$16bo2$2b2o$3bo7b2o$3bobo5b2o$4b2o7$14b2o$14bo$15b3o$17bo!", -10, -20, 1, 0, 0, 1)
		else:
			mir = g.parse("14$22bo$4b2o14b5o$5bo13bo5bo$5bobo12b3o2bo$6b2o15bob2o$20b4o2bo$15b2o3bo3b2o$15b2o4b3o$23bo$23bob2o$22b2ob2o3$14b2o$14bo$15b3o$17bo!", -10, -20, 1, 0, 0, 1)
		
		mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
		g.putcells(mir, self.x, self.y) 

class StaticMirror:
	def __init__(self, glider, dist, isRight):
		self.glider = glider
		self.dist = dist
		self.isRight = isRight ^ (glider.dx == 1) ^ (glider.dy == 1)
		
		self.x = glider.x + dist * glider.dx 
		self.y = glider.y - dist * glider.dy 
		
		if self.isRight:
			self.outputGlider = Glider(self.x + 78 * self.glider.dx, self.y - 10 * self.glider.dy, self.glider.dx, -self.glider.dy, 359 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
		else: 
			self.outputGlider = Glider(self.x + 10 * self.glider.dx, self.y - 80 * self.glider.dy, -self.glider.dx, self.glider.dy, 351 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
		
	def Place(self):
		if self.isRight:
			mir = g.parse("12$69b2o$69b2o9$84b2o$84b2o10$64b2o$65bo$62b3o$13b2o47bo$14bo$14bobo$15b2o8$18bo34bo$16b3o32b3o$15bo34bo$15b2o33b2o20b2o$5b2o56b2o7b2o$6bo57bo$6bobo55bobo$7b2o4b2o44b2o4b2o$12bo2bo44bo20b2o$13b2o45bobo18bo$25b2o34b2o16bobo$25b2o52b2o8$11b2o3b2o32b2o$12bo3bo20b2o11b2o$9b3o5b3o18bo$9bo9bo15b3o35b2o$35bo37b2o2b2o$77bobo$79bo$79b2o5$48b2o$49bo$46b3o$46bo!", -10, -60, 1, 0, 0, 1)
		else:
			mir = g.parse("7$58b2o$58b2o2$26bo$24b3o$8bo14bo$8b3o12b2o$11bo$10b2o3$11b2o$11b2o17b2o$30b2o2$68b2o$68b2o3$27b2o$27bo19b2o$28b3o15bobo$30bo15bo$24b2o19b2o$24bo$25b3o$27bo6$33b2o$33bo$14b2o15bobo$14b2o15b2o$2b2o$bobo$bo$2o8$13b2o$12bobo$12bo$11b2o9$23b2o$23b2o6$12b2o$13bo19b2o$13bobo17bo$14b2o15bobo8b2o$26bo4b2o9bo$25bobo15b3o$25bobo17bo$14b2o10bo$13bobo$13bo$12b2o$27b2o$27bo$28b3o$30bo!", -20, -80, 1, 0, 0, 1)
		
		mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
		g.putcells(mir, self.x, self.y) 

class ColorSwitch:
	def __init__(self, glider, dist):
		self.glider = glider
		self.dist = dist
		
		self.x = glider.x + dist * glider.dx 
		self.y = glider.y - dist * glider.dy 
		
		self.outputGlider = Glider(self.x + 79 * self.glider.dx, self.y - 50 * self.glider.dy, self.glider.dx, self.glider.dy, 368 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
		
	def Place(self):
		mir = g.parse("5$66b2o$66b2o11$80b2o$80bobo$82bo$82b2o6$61b2o$62bo$59b3o$59bo3$13b2o$14bo$14bobo$15b2o61b2o$78bo$79b3o$81bo2$15bo34bo$13b3o32b3o$12bo34bo$12b2o33b2o20b2o$2b2o56b2o7b2o$3bo57bo$3bobo55bobo$4b2o4b2o44b2o4b2o$9bo2bo44bo20b2o$10b2o45bobo18bo$22b2o34b2o16bobo$22b2o52b2o8$8b2o3b2o32b2o$9bo3bo20b2o11b2o$6b3o5b3o18bo$6bo9bo15b3o35b2o$32bo37b2o2b2o$74bobo$76bo$2b2o72b2o$2bobo$4bo$4b2o2$45b2o$46bo$43b3o$43bo!", 0, -60, 1, 0, 0, 1)
		mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
		g.putcells(mir, self.x, self.y) 

def HoldBacker(gld, holdBackAmountDiv8, maxLength):
	
	total = 0 
	s = holdBackAmountDiv8
	
	while True: 
		i = 0

		while s - 26 - i > 100 and i < maxLength:
			i += 1
			
	
		
		degrees = [(True, 15), (False, 15 + i), (False, 15), (True, 17 + i)]
				
		for deg in degrees: 
			sn = Snark(gld, deg[1], deg[0])
			sn.Place()
			gld = sn.outputGlider
		
		total += 26 + i
		s = s - 26 - i
		
		if i < maxLength:
			break
	
	return total
	
class UniversalGliderGun():
	def __init__(self, x, y, period):
		self.x = x
		self.y = y
		self.period = period
		self.numBits = 3
		
	def PlaceStart(self, turnOnBit): 
		startPart = g.parse("6$44bo$43bobo$43bobo$44bo18$64b2o$65bo$65bobo$66b2o5$63b2o$64bo$64bobo$65b2o18$104b2o3b2o$102b3obo2b2o$60b2o39bo4bo$59bobo39bo2b2ob4o$59bo25b2o13b2obobobo2bo$58b2o25bo15bobobobo$66b2o15bobo15bobob2o$66b2o15b2o17bo2$115b2o$106b2o7bo$106b2o5bobo$113b2o7$65b2o36b2o$64bobo37bo$64bo36b3o$63b2o36bo2$103b2o3b2o$103b2o2bob3o$107bo4bo$103b4ob2o2bo$103bo2bobobob2o$106bobobobo$107b2obobo$75b2o34bo$75b2o$87b2o8b2o$87bobo8bo7b2o$89bo8bobo5b2o$89b2o8b2o2$64b2o$65bo19b2o$65bobo17bo56bo$66b2o15bobo38b2o14b5o$70b2o6bo4b2o40bo13bo5bo$69bo2bo4bobo29b2o14bobo12b3o2bo$70b2o5bobo29bo16b2o15bob2o$66b2o10bo31b3o27b4o2bo$65bobo44bo22b2o3bo3b2o$65bo69b2o4b3o$64b2o77bo$79b2o62bob2o$79bo62b2ob2o$80b3o$82bo$98b2o34b2o$99bo34bo$99bobo33b3o$100b2o2b2o31bo5bo$104b2o35b3o15bo9bo$140bo18b3o5b3o$127b2o11b2o20bo3bo$127b2o32b2o3b2o8$40bo57b2o52b2o$38b5o14b2o38bobo16b2o34b2o$37bo5bo13bo39bo18bobo45b2o$37bo2b3o12bobo38b2o20bo44bo2bo$36b2obo15b2o55b2o4b2o44b2o4b2o$36bo2b4o69bobo55bobo$37b2o3bo3b2o66bo57bo$39b3o4b2o57b2o7b2o56b2o$39bo65b2o20b2o33b2o$36b2obo88bo34bo$36b2ob2o84b3o32b3o$125bo34bo2$47b2o$48bo$45b3o47b2o$45bo50bo$96bobo$97b2o2$49bo$47b3o$46bo69bo$46b2o66b3o$113bo$113b2o5$36b2o$35bobo5b2o47b2o$35bo7b2o48bo$34b2o57bobo$94b2o$48bo39bo$44b2obobo38b3o$43bobobobo41bo$40bo2bobobob2o39b2o$40b4ob2o2bo$44bo4bo$40b2o2bob3o$40b2o3b2o3$100b2o6b2o$93b2o5bobo5b2o$93b2o7bo$102b2o2$89bo$88bobob2o$88bobobobo$87b2obobobo2bo$88bo2b2ob4o$88bo4bo$89b3obo2b2o$91b2o3b2o26$238bo$236b3o$235bo$235b2o7$225b2o$224bobo5b2o$224bo7b2o$223b2o2$237bo$233b2obobo$232bobobobo$229bo2bobobob2o$229b4ob2o2bo$233bo4bo$229b2o2bob3o$229b2o3b2o!", 0, -60, 1, 0, 0, 1)			
		g.putcells(startPart, self.x, self.y) 
		
		if turnOnBit:
			blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
			g.putcells(blocker, self.x, self.y) 
		
	def PlaceEnd(self, turnOnBit, numBits): 
		startPart = g.parse("121bo$81b2o38b3o$82bo41bo14bo$82bobo38b2o12b3o$83b2o2b2o47bo$87b2o47b2o3$135b2o$116b2o17b2o$116b2o6$81b2o36b2o$80bobo16b2o19bo$80bo18bobo15b3o$79b2o20bo15bo$95b2o4b2o19b2o$95bobo25bo$97bo22b3o$88b2o7b2o21bo$88b2o7$78b2o$79bo$79bobo$80b2o$96bo$94b3o$93bo$93b2o28b2o$122bobo$122bo29b2o$121b2o29bobo$61b2o91bo$38bo23bo64b2o25b2o$36b3o23bobo61bobo4b2o$35bo27b2o61bo7bo$35b2o88b2o4b3o$131bo$12bo42bo83b2o$12b3o38b3o44b2o36bobo$5bo9bo36bo47b2o36bo$5b3o6b2o23b2o11b2o83b2o$8bo30b2o$7b2o$95b2o$95b2o$99b2o54b2o$99b2o54bobo$157bo$157b2o$64b2o27b2o$3bo23b2o35b2o11b2o14b2o$2bobo22bo49bo$3bo14b2o8b3o47b3o$18bo11bo49bo$19b3o$21bo125b2o$138b2o7b2o$5b2o32b2o98bo$4bobo33bo98bobo$4bo32b3o100b2o$3b2o32bo85bo32b2o$19b2o100b3o32bo$19bobo52b2o21bo22bo33bobo$21bo52b2o21b3o20b2o32b2o$12b2o7b2o40b2o35bo$12b2o50bo34b2o38bo$64bobo72b3o$65b2o63bo11bo$130b3o8b2o14bo$133bo22bobo$132b2o23bo2$2b2o58b2o25b2o$3bo59bo25b2o$3bobo57bobo$4b2o58b2o3$77b2o$77bobo6b2o32b2o$22b2o55bo6bo20b2o11b2o23b2o23bo$22bo56b2o6b3o18bo36bo22b3o$20bobo66bo15b3o38b3o18bo$20b2o83bo42bo18b2o2$124b2o$125bo49b2ob2o$75b2o45b3o51bob2o$75bobo44bo53bo$77bo90b2o4b3o$77b2o89b2o3bo3b2o$173b4o2bo$159b2o15bob2o$158bobo12b3o2bo$158bo13bo5bo$2b2o15b2o38b2o96b2o14b5o$bobo15b2o37bobo114bo$bo25b2o29bo25b2o129b2o$2o25bo29b2o25bo131bo$25bobo37b2o15bobo131bobo$25b2o38b2o15b2o133b2o$242b2o$242b2o2$210bo$208b3o$192bo14bo$192b3o12b2o$195bo$194b2o3$64b2o129b2o$63bobo129b2o17b2o$63bo150b2o$62b2o$252b2o$252b2o3$20b2o58b2o129b2o$20bobo57bobo128bo19b2o$22bo59bo40bo88b3o15bobo$22b2o58b2o39b3o88bo15bo$126bo81b2o19b2o$125b2o81bo$209b3o$18b2o191bo$18bobo93b2ob2o$20bo93b2obo$20b2o50b2o43bo$63b2o7b2o43b3o4b2o$64bo50b2o3bo3b2o$64bobo47bo2b4o96b2o$65b2o47b2obo15b2o82bo$48bo32b2o32bo2b3o12bobo62b2o15bobo$46b3o32bo33bo5bo13bo62b2o15b2o$22bo22bo33bobo34b5o14b2o$22b3o20b2o32b2o37bo$25bo$24b2o38bo$64b3o$55bo11bo$55b3o8b2o14bo$58bo22bobo$57b2o23bo3$197b2o$196bobo$196bo$195b2o2$77b2o$45b2o30bo$32b2o11b2o23b2o6b3o$33bo36bo9bo$30b3o38b3o82b2o$30bo42bo82b2o2$49b2o156b2o$50bo156b2o$47b3o93b2o$47bo96bo$144bobo$145b2o2$196b2o$197bo19b2o5b2o$163b2o32bobo17bo6bo$163b2o15bo17b2o15bobo7b3o$178b3o29bo4b2o10bo$145b2o30bo31bobo$144bobo30b2o30bobo$144bo53b2o10bo$143b2o52bobo$197bo$196b2o$211b2o$154b2o55bo$153bobo56b3o$153bo60bo$152b2o5$174b2o$174bobo$176bo$176b2o17$215b2o$216bo$216bobo$217b2o$242b2o$242b2o2$210bo$208b3o$192bo14bo$192b3o12b2o$195bo$194b2o3$195b2o$195b2o17b2o$214b2o2$252b2o$252b2o3$211b2o$211bo19b2o$212b3o15bobo$214bo15bo$208b2o19b2o$208bo$209b3o$211bo6$217b2o$217bo$198b2o15bobo$198b2o15b2o12$197b2o$196bobo$196bo$195b2o9$207b2o$207b2o6$196b2o$197bo19b2o5b2o$197bobo17bo6bo$198b2o15bobo7b3o$210bo4b2o10bo$209bobo$209bobo$198b2o10bo$197bobo$197bo$196b2o$211b2o$211bo$212b3o$214bo!", 1, -108, 1, 0, 0, 1)			
		g.putcells(startPart, self.x + 75 * numBits, self.y - numBits * 75) 
		
		if turnOnBit:
			blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
			g.putcells(blocker, self.x + 75 * numBits, self.y - numBits * 75) 
		
	def PlaceBitStream(self, blocks): 
		d = 0
		
		for toBlock in blocks:
			bit = g.parse("87b2o$88bo$43bo44bobo$41b3o45b2o$40bo$40b2o2$17bo42bo$17b3o38b3o15bo$10bo9bo36bo18b3o6b2o$10b3o6b2o23b2o11b2o20bo6bo$13bo30b2o32b2o6bobo$12b2o73b2o5$75b2o$75b2o2$8bo23b2o$7bobo22bo$8bo14b2o8b3o$23bo11bo$24b3o55b2o$26bo56bo$80b3o6bo$10b2o32b2o34bo7bobo$9bobo33bo43bo$9bo32b3o$8b2o32bo$24b2o$24bobo52b2o$26bo52b2o$17b2o7b2o40b2o$17b2o50bo$69bobo$70b2o5$7b2o58b2o25b2o$8bo59bo25b2o$8bobo57bobo$9b2o58b2o3$82b2o$82bobo6b2o$27b2o55bo6bo$27bo56b2o6b3o$25bobo66bo$25b2o4$80b2o$80bobo$82bo$82b2o5$7b2o15b2o38b2o$6bobo15b2o37bobo$6bo25b2o29bo25b2o$5b2o25bo29b2o25bo$30bobo37b2o15bobo$30b2o38b2o15b2o5$12b2o$13bo$13bobo$14b2o4$69b2o$bo66bobo$b3o6b2o56bo$4bo6bo55b2o$3b2o6bobo$12b2o3$25b2o58b2o$25bobo57bobo$2o25bo59bo$2o25b2o58b2o4$23b2o$23bobo$7b2o16bo$8bo16b2o50b2o$5b3o6bo53b2o7b2o$5bo7bobo53bo$14bo54bobo$70b2o$53bo32b2o$51b3o32bo$4b2o21bo22bo33bobo$4b2o21b3o20b2o32b2o$30bo$29b2o38bo$69b3o$60bo11bo$60b3o8b2o14bo$63bo22bobo$62b2o23bo2$19b2o$19b2o5$7b2o73b2o$7bobo6b2o32b2o30bo$9bo6bo20b2o11b2o23b2o6b3o$9b2o6b3o18bo36bo9bo$19bo15b3o38b3o$35bo42bo2$54b2o$55bo$5b2o45b3o$5bobo44bo$7bo$7b2o!", 71, -142, 1, 0, 0, 1)			
			g.putcells(bit, self.x + d, self.y - d) 
				
			if toBlock: 
				blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
				g.putcells(blocker,self.x + 75 + d, self.y - 75 - d) 
				
			d += 75
	def PlaceReflector(self): 
		blocker = g.parse("9b2o$10bo$10bobo$11b2o2b2o37bo$15b2o35b3o15bo9bo$51bo18b3o5b3o$38b2o11b2o20bo3bo$38b2o32b2o3b2o8$9b2o52b2o$8bobo16b2o34b2o$8bo18bobo45b2o$7b2o20bo44bo2bo$23b2o4b2o44b2o4b2o$23bobo55bobo$25bo57bo$16b2o7b2o56b2o$o15b2o20b2o33b2o$3o36bo34bo$3bo32b3o32b3o$2b2o32bo34bo6$71b2o$71bobo$73bo$73b2o2$27bo$25b3o$24bo$24b2o10$4b2o$4b2o9$19b2o$19b2o!", 263,-15, 1, 0, 0, 1)
		g.putcells(blocker, self.x - 112, self.y + 112) 
	
	def ZeroPeriodMod8(self, mod8Value): 
		if mod8Value == 0: 
			return 8248
		
		if mod8Value == 1:
			return 8281
		
		if mod8Value == 2:
			return 8642

		if mod8Value == 3:
			return 8115
		
		if mod8Value == 4:
			return 8212
		
		if mod8Value == 5:
			return 8045
		
		if mod8Value == 6:
			return 8414
		
		if mod8Value == 7:
			return 8559
		
	def PlaceHoldMechanism(self, period0):
		
		mod8Value = period0 % 8 
		Mod8Multiplier = (period0 - self.CalculateZeroPeriod(self.numBits, mod8Value)) / 8
		
		if mod8Value == 0: 
		
			golly.select( [self.x +111 + 75,self.y-140 - 75,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113 + 75,self.y -140 - 75, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			gld = snk.outputGlider
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(snk.outputGlider, Mod8Multiplier - remain, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = Snark(sw.outputGlider, 88 + 75, False)
			snk.Place()
			return 8248 + 8 * Mod8Multiplier
		
		if mod8Value == 1:
		
			golly.select( [self.x +111,self.y -140,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113, self.y -140, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			gld = snk.outputGlider
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(snk.outputGlider, Mod8Multiplier - remain, False)
			snk.Place()
			snk = StaticMirror(snk.outputGlider, 122, False)
			snk.Place()
			return 8281 + 8 * Mod8Multiplier
		
		if mod8Value == 2:
		
			golly.select( [self.x +111 +  75,self.y-140 - 75,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113 +  75, self.y-140 -  75, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place
			gld = snk.outputGlider
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(snk.outputGlider, Mod8Multiplier - remain, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = StaticMirror(sw.outputGlider, 17 +75, False)
			snk.Place()
			return 8642 + 8 * Mod8Multiplier

		if mod8Value == 3:

			golly.select( [self.x +111 + 75,self.y-140 - 75,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113 + 75, self.y-140 - 75, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			gld = snk.outputGlider
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(snk.outputGlider, Mod8Multiplier - remain, False)
			snk.Place()
			snk = StaticMirror(snk.outputGlider, 122 + 75, False)
			snk.Place()
			return 8115 + 8 * Mod8Multiplier
			
		if mod8Value == 4:

			golly.select( [self.x +78,self.y-100,4,4] )
			golly.clear(0)
			gld = Glider(self.x +80, self.y-100, -1,1,0,0)
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(gld, Mod8Multiplier - remain, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = Snark(sw.outputGlider, 32, False)
			snk.Place()
			return 8212 + 8 * Mod8Multiplier
			
		if mod8Value == 5:

			golly.select( [self.x +81,self.y-133,4,4] )
			golly.clear(0)
			gld = Glider(self.x +82,self.y -133, -1,1,0,0)
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(gld, Mod8Multiplier - remain, False)
			snk.Place()
			snk = Snark(snk.outputGlider, 124, False)
			snk.Place()
			return 8045 + 8 * Mod8Multiplier
		
		if mod8Value == 6:
		
			golly.select( [self.x +111,self.y-140,4,4] )
			golly.clear(0)
			gld = Glider(self.x +113, self.y-140, 1,1,0,0)
			snk = Snark(gld, 15, False)
			snk.Place()
			gld = snk.outputGlider
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(snk.outputGlider, Mod8Multiplier - remain, False)
			snk.Place()
			sw = ColorSwitch(snk.outputGlider, 10)
			sw.Place()
			snk = Snark(sw.outputGlider, 88, False)
			snk.Place()
			return 8414 + 8 * Mod8Multiplier
		
		if mod8Value == 7:
		
			golly.select( [self.x +81,self.y-133,4,4] )
			golly.clear(0)
			gld = Glider(self.x +82, self.y-133, -1,1,0,0)
			remain = HoldBacker(gld, Mod8Multiplier, 75 * (self.numBits - 1))
			snk = Snark(gld, Mod8Multiplier - remain, False)
			snk.Place()
			snk = StaticMirror(snk.outputGlider, 53, False)
			snk.Place()
			return 8559 + 8 * Mod8Multiplier
		
	
	def RotationPeriod(self, numBits):
		return 3415 + 1200 * (numBits - 3)
	
	def RotationPeriodHoldBack(self, numBits):
		return 1200 * (numBits - 3)
	
	def BitHoldBack(self, numBits): 
		return 932 * (numBits - 3)
	
	def CalculateZeroPeriod(self, numBits, periodMod8):
		return self.BitHoldBack(numBits) + self.ZeroPeriodMod8(periodMod8) + self.RotationPeriodHoldBack(numBits)
	
	def CalculateMaxPeriod(self, numBits, periodMod8):
		return self.CalculateZeroPeriod(numBits, periodMod8) + (2**numBits - 1) * self.RotationPeriod(numBits)
	
	def CalculateNumBits(self, period):
		
		while self.CalculateMaxPeriod(self.numBits, period%8) < period:
			self.numBits += 2
		
		return self.numBits
		
	def DoAllCalculations(self):
		period = self.period
		
		if period < self.ZeroPeriodMod8(period % 8):
			golly.exit("The period is too low")
		
		numBits = self.CalculateNumBits(period)
		
		
		rot = self.RotationPeriod(numBits)
		zero = self.CalculateZeroPeriod(numBits, (period - self.RotationPeriod(numBits)) % 8)
		
		zeroMultiplier = (zero - zero % rot) / rot
		periodMultipler = (period - period % rot) / rot
		multiplier = periodMultipler - zeroMultiplier - 10
		period -= multiplier * rot 
		
		while period - self.RotationPeriod(numBits) >= self.CalculateZeroPeriod(numBits, (period - self.RotationPeriod(numBits)) % 8):
			multiplier += 1
			period -= self.RotationPeriod(numBits)
			
		bits = 2**numBits - multiplier
		
		endBit = bits < 2**(numBits - 1)
		
		if not endBit: 
			bits -= 2**(numBits - 1)
		
		startBit = bits % 2 == 0
		bits = (bits - bits%2) / 2
		
		middlebits = []
		
		for i in xrange(0, self.numBits - 2):
			middlebits.extend([bits % 2 == 0])
			bits = (bits - bits%2) / 2
			
		period0 = period 
		
		return [startBit, middlebits, endBit, period0]
		
	def Place(self): 
		values = self.DoAllCalculations();
		self.PlaceStart(values[0])
		self.PlaceBitStream(values[1])
		self.PlaceEnd(values[2],self.numBits - 1)
		self.PlaceReflector()
		gld = Glider(self.x + 167, self.y + 63, -1,-1,0,0)
		gld.Place()
		self.PlaceHoldMechanism(values[3])

g.select([0,0,1,1])
g.clear(1)
g.clear(0)
'''
gld = Glider(0,0,-1,1,0,0)
gld.Place()

def holdind(d): 
	sn = Snark(gld, d, False)
	sn.Place()

	sn = Snark(sn.outputGlider, 10, False)
	sn.Place()

	sn = Snark(sn.outputGlider, d, True)
	sn.Place()

s = 200
total = HoldBacker(gld, 200, 50)

gld = Glider(0,0,-1,1,0,0)
holdind(200 - total)

'''
gen = g.getstring("Enter Gun Period: ")
gun = UniversalGliderGun(0,0,int(gen))
gun.Place()
g.fit() 
And now pure fun: p39916801 glider gun :lol:

Code: Select all

x = 1334, y = 1248, rule = B3/S23
1140b2o3b2o$1138b3obo2b2o$1137bo4bo$1137bo2b2ob4o$1136b2obobobo2bo$
1137bobobobo$1137bobob2o$1138bo2$1151b2o$1142b2o7bo$1142b2o5bobo$1149b
2o7$1139b2o$1140bo$1137b3o$1137bo11$1171bo$1153b2o14b5o$1154bo13bo5bo$
1154bobo12b3o2bo$1155b2o15bob2o$1169b4o2bo$1164b2o3bo3b2o$1164b2o4b3o$
1172bo$1172bob2o$1171b2ob2o3$1163b2o$1163bo$1164b3o$1166bo21$1201bo$
1161b2o38b3o$1162bo41bo14bo$1162bobo38b2o12b3o$1163b2o2b2o47bo$1167b2o
47b2o3$1215b2o$1196b2o17b2o$1196b2o6$1161b2o36b2o$1160bobo16b2o19bo$
1160bo18bobo15b3o$1159b2o20bo15bo$1175b2o4b2o19b2o$1175bobo25bo$1177bo
22b3o$1168b2o7b2o21bo$1168b2o7$1158b2o$1159bo$1159bobo$1160b2o$1176bo$
1174b3o$1173bo$1173b2o28b2o$1202bobo$1202bo29b2o$1201b2o29bobo$1141b2o
91bo$1118bo23bo64b2o25b2o$1116b3o23bobo61bobo4b2o$1115bo27b2o61bo7bo$
1115b2o88b2o4b3o$1211bo$1092bo42bo83b2o$1092b3o38b3o44b2o36bobo$1085bo
9bo36bo47b2o36bo$1085b3o6b2o23b2o11b2o83b2o$1088bo30b2o$1087b2o$1175b
2o$1175b2o$1179b2o54b2o$1179b2o54bobo$1237bo$1237b2o$1144b2o27b2o$
1083bo23b2o35b2o11b2o14b2o$1082bobo22bo49bo$1083bo14b2o8b3o47b3o$1098b
o11bo49bo$1099b3o$1101bo125b2o$1218b2o7b2o$1085b2o32b2o98bo$1084bobo
33bo98bobo$1084bo32b3o100b2o$1083b2o32bo85bo32b2o$1099b2o100b3o32bo$
1099bobo52b2o21bo22bo33bobo$1101bo52b2o21b3o20b2o32b2o$1092b2o7b2o40b
2o35bo$1092b2o50bo34b2o38bo$1144bobo72b3o$1145b2o63bo11bo$1210b3o8b2o
14bo$1213bo22bobo$1212b2o23bo2$1082b2o58b2o25b2o$1083bo59bo25b2o$1083b
obo57bobo$1084b2o58b2o3$1157b2o$1157bobo6b2o32b2o$1102b2o55bo6bo20b2o
11b2o23b2o23bo$1102bo56b2o6b3o18bo36bo22b3o$1100bobo66bo15b3o38b3o18bo
$1100b2o83bo42bo18b2o2$1204b2o$1205bo49b2ob2o$1155b2o45b3o51bob2o$
1155bobo44bo53bo$1157bo90b2o4b3o$1157b2o89b2o3bo3b2o$1253b4o2bo$1239b
2o15bob2o$1238bobo12b3o2bo$1238bo13bo5bo$1082b2o15b2o38b2o96b2o14b5o$
1081bobo15b2o37bobo114bo$1081bo25b2o29bo25b2o129b2o$1080b2o25bo29b2o
25bo131bo$1105bobo37b2o15bobo131bobo$1105b2o38b2o15b2o133b2o$1322b2o$
1322b2o2$1290bo$1087b2o199b3o$1088bo183bo14bo$1043bo44bobo181b3o12b2o$
1041b3o45b2o184bo$1040bo233b2o$1040b2o2$1017bo42bo83b2o129b2o$1017b3o
38b3o15bo66bobo129b2o17b2o$1010bo9bo36bo18b3o6b2o56bo150b2o$1010b3o6b
2o23b2o11b2o20bo6bo55b2o$1013bo30b2o32b2o6bobo243b2o$1012b2o73b2o243b
2o3$1100b2o58b2o129b2o$1100bobo57bobo128bo19b2o$1075b2o25bo59bo40bo88b
3o15bobo$1075b2o25b2o58b2o39b3o88bo15bo$1206bo81b2o19b2o$1008bo23b2o
171b2o81bo$1007bobo22bo256b3o$1008bo14b2o8b3o62b2o191bo$1023bo11bo62bo
bo93b2ob2o$1024b3o55b2o16bo93b2obo$1026bo38b2o16bo16b2o50b2o43bo$1065b
o14b3o6bo53b2o7b2o43b3o4b2o$1010b2o32b2o20b3o11bo7bobo53bo50b2o3bo3b2o
$1009bobo33bo22bo20bo54bobo47bo2b4o96b2o$1009bo32b3o100b2o47b2obo15b2o
82bo$1008b2o32bo85bo32b2o32bo2b3o12bobo62b2o15bobo$1024b2o100b3o32bo
33bo5bo13bo62b2o15b2o$1024bobo52b2o21bo22bo33bobo34b5o14b2o$1026bo52b
2o21b3o20b2o32b2o37bo$1017b2o7b2o40b2o35bo$1017b2o50bo34b2o38bo$1069bo
bo72b3o$1070b2o63bo11bo$1135b3o8b2o14bo$1138bo22bobo$1137b2o23bo2$
1007b2o58b2o25b2o$1008bo59bo25b2o181b2o$1008bobo57bobo205bobo$1009b2o
58b2o205bo$1275b2o2$1082b2o73b2o$1082bobo6b2o32b2o30bo$1027b2o55bo6bo
20b2o11b2o23b2o6b3o$1027bo56b2o6b3o18bo36bo9bo$1025bobo66bo15b3o38b3o
82b2o$1025b2o83bo42bo82b2o2$1129b2o156b2o$1130bo156b2o$1080b2o45b3o93b
2o$1080bobo44bo96bo$1082bo141bobo$1082b2o141b2o2$1276b2o$1277bo19b2o5b
2o$1243b2o32bobo17bo6bo$1007b2o15b2o38b2o177b2o15bo17b2o15bobo7b3o$
1006bobo15b2o37bobo192b3o29bo4b2o10bo$1006bo25b2o29bo25b2o134b2o30bo
31bobo$1005b2o25bo29b2o25bo134bobo30b2o30bobo$1030bobo37b2o15bobo134bo
53b2o10bo$1030b2o38b2o15b2o134b2o52bobo$1277bo$1276b2o$1291b2o$1234b2o
55bo$1012b2o219bobo56b3o$1013bo219bo60bo$968bo44bobo216b2o$966b3o45b2o
$965bo$965b2o2$942bo42bo83b2o183b2o$942b3o38b3o15bo66bobo183bobo$935bo
9bo36bo18b3o6b2o56bo187bo$935b3o6b2o23b2o11b2o20bo6bo55b2o187b2o$938bo
30b2o32b2o6bobo$937b2o73b2o3$1025b2o58b2o$1025bobo57bobo$1000b2o25bo
59bo$1000b2o25b2o58b2o2$933bo23b2o$932bobo22bo$933bo14b2o8b3o62b2o$
948bo11bo62bobo$949b3o55b2o16bo$951bo56bo16b2o50b2o$1005b3o6bo53b2o7b
2o$935b2o32b2o34bo7bobo53bo225b2o$934bobo33bo43bo54bobo224bo$934bo32b
3o100b2o224bobo$933b2o32bo85bo32b2o209b2o$949b2o100b3o32bo235b2o$949bo
bo52b2o21bo22bo33bobo235b2o$951bo52b2o21b3o20b2o32b2o$942b2o7b2o40b2o
35bo259bo$942b2o50bo34b2o38bo218b3o$994bobo72b3o200bo14bo$995b2o63bo
11bo199b3o12b2o$1060b3o8b2o14bo187bo$1063bo22bobo185b2o$1062b2o23bo2$
932b2o58b2o25b2o254b2o$933bo59bo25b2o254b2o17b2o$933bobo57bobo298b2o$
934b2o58b2o$1332b2o$1332b2o$1007b2o73b2o$1007bobo6b2o32b2o30bo$952b2o
55bo6bo20b2o11b2o23b2o6b3o205b2o$952bo56b2o6b3o18bo36bo9bo205bo19b2o$
950bobo66bo15b3o38b3o213b3o15bobo$950b2o83bo42bo215bo15bo$1288b2o19b2o
$1054b2o232bo$1055bo233b3o$1005b2o45b3o236bo$1005bobo44bo$1007bo$1007b
2o3$1297b2o$1297bo$932b2o15b2o38b2o287b2o15bobo$931bobo15b2o37bobo287b
2o15b2o$931bo25b2o29bo25b2o$930b2o25bo29b2o25bo$955bobo37b2o15bobo$
955b2o38b2o15b2o5$937b2o$938bo$893bo44bobo$891b3o45b2o336b2o$890bo385b
obo$890b2o384bo$1275b2o$867bo42bo83b2o$867b3o38b3o15bo66bobo$860bo9bo
36bo18b3o6b2o56bo$860b3o6b2o23b2o11b2o20bo6bo55b2o$863bo30b2o32b2o6bob
o$862b2o73b2o3$950b2o58b2o275b2o$950bobo57bobo274b2o$925b2o25bo59bo$
925b2o25b2o58b2o2$858bo23b2o$857bobo22bo$858bo14b2o8b3o62b2o326b2o$
873bo11bo62bobo326bo19b2o5b2o$874b3o55b2o16bo326bobo17bo6bo$876bo38b2o
16bo16b2o50b2o274b2o15bobo7b3o$915bo14b3o6bo53b2o7b2o286bo4b2o10bo$
860b2o32b2o20b3o11bo7bobo53bo294bobo$859bobo33bo22bo20bo54bobo292bobo$
859bo32b3o100b2o281b2o10bo$858b2o32bo85bo32b2o264bobo$874b2o100b3o32bo
265bo$874bobo52b2o21bo22bo33bobo264b2o$876bo52b2o21b3o20b2o32b2o280b2o
$867b2o7b2o40b2o35bo335bo$867b2o50bo34b2o38bo297b3o$919bobo72b3o297bo$
920b2o63bo11bo$985b3o8b2o14bo$988bo22bobo$987b2o23bo2$857b2o58b2o25b2o
$858bo59bo25b2o$858bobo57bobo$859b2o58b2o3$932b2o73b2o$932bobo6b2o32b
2o30bo$877b2o55bo6bo20b2o11b2o23b2o6b3o$877bo56b2o6b3o18bo36bo9bo$875b
obo66bo15b3o38b3o$875b2o83bo42bo2$979b2o$980bo$930b2o45b3o$930bobo44bo
$932bo$932b2o5$857b2o15b2o38b2o$856bobo15b2o37bobo$856bo25b2o29bo25b2o
$855b2o25bo29b2o25bo$880bobo37b2o15bobo$880b2o38b2o15b2o5$862b2o$863bo
$818bo44bobo$816b3o45b2o$815bo$815b2o2$792bo42bo83b2o$792b3o38b3o15bo
66bobo$785bo9bo36bo18b3o6b2o56bo$785b3o6b2o23b2o11b2o20bo6bo55b2o$788b
o30b2o32b2o6bobo$787b2o73b2o3$875b2o58b2o$875bobo57bobo$850b2o25bo59bo
$850b2o25b2o58b2o2$783bo23b2o$782bobo22bo$783bo14b2o8b3o62b2o$798bo11b
o62bobo$799b3o55b2o16bo$801bo56bo16b2o50b2o$855b3o6bo53b2o7b2o$785b2o
32b2o34bo7bobo53bo$784bobo33bo43bo54bobo$784bo32b3o100b2o$783b2o32bo
85bo32b2o$799b2o100b3o32bo$799bobo52b2o21bo22bo33bobo$801bo52b2o21b3o
20b2o32b2o$792b2o7b2o40b2o35bo$792b2o50bo34b2o38bo$844bobo72b3o$845b2o
63bo11bo$910b3o8b2o14bo$913bo22bobo$912b2o23bo2$782b2o58b2o25b2o$783bo
59bo25b2o$783bobo57bobo$784b2o58b2o3$857b2o73b2o$857bobo6b2o32b2o30bo$
802b2o55bo6bo20b2o11b2o23b2o6b3o$802bo56b2o6b3o18bo36bo9bo$800bobo66bo
15b3o38b3o$800b2o83bo42bo2$904b2o$905bo$855b2o45b3o$855bobo44bo$857bo$
857b2o5$782b2o15b2o38b2o$781bobo15b2o37bobo$781bo25b2o29bo25b2o$780b2o
25bo29b2o25bo$805bobo37b2o15bobo$805b2o38b2o15b2o5$787b2o$788bo$743bo
44bobo$741b3o45b2o$740bo$740b2o2$717bo42bo83b2o$717b3o38b3o15bo66bobo$
710bo9bo36bo18b3o6b2o56bo$710b3o6b2o23b2o11b2o20bo6bo55b2o$713bo30b2o
32b2o6bobo$712b2o73b2o3$800b2o58b2o$800bobo57bobo$775b2o25bo59bo$775b
2o25b2o58b2o2$708bo23b2o$707bobo22bo$708bo14b2o8b3o62b2o$723bo11bo62bo
bo$724b3o55b2o16bo$726bo56bo16b2o50b2o$780b3o6bo53b2o7b2o$710b2o32b2o
34bo7bobo53bo$709bobo33bo43bo54bobo$709bo32b3o100b2o$708b2o32bo85bo32b
2o$724b2o100b3o32bo$724bobo52b2o21bo22bo33bobo$726bo52b2o21b3o20b2o32b
2o$717b2o7b2o40b2o35bo$717b2o50bo34b2o38bo$769bobo72b3o$770b2o63bo11bo
$835b3o8b2o14bo$838bo22bobo$837b2o23bo2$707b2o58b2o25b2o$708bo59bo25b
2o$708bobo57bobo$709b2o58b2o3$782b2o73b2o$782bobo6b2o32b2o30bo$727b2o
55bo6bo20b2o11b2o23b2o6b3o$727bo56b2o6b3o18bo36bo9bo$725bobo66bo15b3o
38b3o$725b2o83bo42bo2$829b2o$830bo$780b2o45b3o$780bobo44bo$782bo$782b
2o5$707b2o15b2o38b2o$706bobo15b2o37bobo$706bo25b2o29bo25b2o$705b2o25bo
29b2o25bo$730bobo37b2o15bobo$730b2o38b2o15b2o5$712b2o$713bo$668bo44bob
o$666b3o45b2o$665bo$665b2o2$642bo42bo83b2o$642b3o38b3o15bo66bobo$635bo
9bo36bo18b3o6b2o56bo$635b3o6b2o23b2o11b2o20bo6bo55b2o$638bo30b2o32b2o
6bobo$637b2o73b2o3$725b2o58b2o$725bobo57bobo$700b2o25bo59bo$700b2o25b
2o58b2o2$633bo23b2o$632bobo22bo$633bo14b2o8b3o62b2o$648bo11bo62bobo$
649b3o55b2o16bo$651bo56bo16b2o50b2o$705b3o6bo53b2o7b2o$635b2o32b2o34bo
7bobo53bo$634bobo33bo43bo54bobo$634bo32b3o100b2o$633b2o32bo85bo32b2o$
649b2o100b3o32bo$649bobo52b2o21bo22bo33bobo$651bo52b2o21b3o20b2o32b2o$
642b2o7b2o40b2o35bo$642b2o50bo34b2o38bo$694bobo72b3o$695b2o63bo11bo$
760b3o8b2o14bo$763bo22bobo$762b2o23bo2$632b2o58b2o25b2o$633bo59bo25b2o
$633bobo57bobo$634b2o58b2o3$707b2o73b2o$707bobo6b2o32b2o30bo$652b2o55b
o6bo20b2o11b2o23b2o6b3o$652bo56b2o6b3o18bo36bo9bo$650bobo66bo15b3o38b
3o$650b2o83bo42bo2$754b2o$755bo$705b2o45b3o$705bobo44bo$707bo$707b2o5$
632b2o15b2o38b2o$631bobo15b2o37bobo$631bo25b2o29bo25b2o$630b2o25bo29b
2o25bo$655bobo37b2o15bobo$655b2o38b2o15b2o5$637b2o$638bo$593bo44bobo$
591b3o45b2o$590bo$590b2o2$567bo42bo83b2o$567b3o38b3o15bo66bobo$560bo9b
o36bo18b3o6b2o56bo$560b3o6b2o23b2o11b2o20bo6bo55b2o$563bo30b2o32b2o6bo
bo$562b2o73b2o3$650b2o58b2o$650bobo57bobo$625b2o25bo59bo$625b2o25b2o
58b2o2$558bo23b2o$557bobo22bo$558bo14b2o8b3o62b2o$573bo11bo62bobo$574b
3o55b2o16bo$576bo56bo16b2o50b2o$630b3o6bo53b2o7b2o$560b2o32b2o34bo7bob
o53bo$559bobo33bo43bo54bobo$559bo32b3o100b2o$558b2o32bo85bo32b2o$574b
2o100b3o32bo$574bobo52b2o21bo22bo33bobo$576bo52b2o21b3o20b2o32b2o$567b
2o7b2o40b2o35bo$567b2o50bo34b2o38bo$619bobo72b3o$620b2o63bo11bo$685b3o
8b2o14bo$688bo22bobo$687b2o23bo2$557b2o58b2o25b2o$558bo59bo25b2o$558bo
bo57bobo$559b2o58b2o3$632b2o73b2o$632bobo6b2o32b2o30bo$577b2o55bo6bo
20b2o11b2o23b2o6b3o$577bo56b2o6b3o18bo36bo9bo$575bobo66bo15b3o38b3o$
575b2o83bo42bo2$679b2o$680bo$630b2o45b3o$630bobo44bo$632bo$632b2o5$
557b2o15b2o38b2o$556bobo15b2o37bobo$556bo25b2o29bo25b2o$555b2o25bo29b
2o25bo$580bobo37b2o15bobo$580b2o38b2o15b2o5$562b2o$563bo$518bo44bobo$
516b3o45b2o$515bo$515b2o2$492bo42bo83b2o$492b3o38b3o15bo66bobo$485bo9b
o36bo18b3o6b2o56bo$485b3o6b2o23b2o11b2o20bo6bo55b2o$488bo30b2o32b2o6bo
bo$487b2o73b2o3$575b2o58b2o$575bobo57bobo$550b2o25bo59bo$550b2o25b2o
58b2o2$483bo23b2o$482bobo22bo$483bo14b2o8b3o62b2o$498bo11bo62bobo$499b
3o55b2o16bo$501bo38b2o16bo16b2o50b2o$540bo14b3o6bo53b2o7b2o$485b2o32b
2o20b3o11bo7bobo53bo$484bobo33bo22bo20bo54bobo$484bo32b3o100b2o$483b2o
32bo85bo32b2o$499b2o100b3o32bo$499bobo52b2o21bo22bo33bobo$501bo52b2o
21b3o20b2o32b2o$492b2o7b2o40b2o35bo$492b2o50bo34b2o38bo$544bobo72b3o$
545b2o63bo11bo$610b3o8b2o14bo$613bo22bobo$612b2o23bo2$482b2o58b2o25b2o
$483bo59bo25b2o$483bobo57bobo$484b2o58b2o3$557b2o73b2o$557bobo6b2o32b
2o30bo$502b2o55bo6bo20b2o11b2o23b2o6b3o$502bo56b2o6b3o18bo36bo9bo$500b
obo66bo15b3o38b3o$500b2o83bo42bo2$604b2o$605bo$555b2o45b3o$555bobo44bo
$557bo$557b2o5$482b2o15b2o38b2o$481bobo15b2o37bobo$481bo25b2o29bo25b2o
$480b2o25bo29b2o25bo$505bobo37b2o15bobo$505b2o38b2o15b2o5$487b2o$488bo
$443bo44bobo$441b3o45b2o$440bo$440b2o2$417bo42bo83b2o$417b3o38b3o15bo
66bobo$410bo9bo36bo18b3o6b2o56bo$410b3o6b2o23b2o11b2o20bo6bo55b2o$413b
o30b2o32b2o6bobo$412b2o73b2o3$500b2o58b2o$500bobo57bobo$475b2o25bo59bo
$475b2o25b2o58b2o2$408bo23b2o$407bobo22bo$408bo14b2o8b3o62b2o$423bo11b
o62bobo$424b3o55b2o16bo$426bo38b2o16bo16b2o50b2o$465bo14b3o6bo53b2o7b
2o$410b2o32b2o20b3o11bo7bobo53bo$409bobo33bo22bo20bo54bobo$409bo32b3o
100b2o$408b2o32bo85bo32b2o$424b2o100b3o32bo$424bobo52b2o21bo22bo33bobo
$426bo52b2o21b3o20b2o32b2o$417b2o7b2o40b2o35bo$417b2o50bo34b2o38bo$
469bobo72b3o$225b2o3b2o238b2o63bo11bo$223b3obo2b2o303b3o8b2o14bo$222bo
4bo310bo22bobo$222bo2b2ob4o305b2o23bo$221b2obobobo2bo$222bobobobo178b
2o58b2o25b2o$222bobob2o180bo59bo25b2o$223bo184bobo57bobo$409b2o58b2o$
236b2o$227b2o7bo$227b2o5bobo245b2o73b2o$234b2o246bobo6b2o32b2o30bo$
427b2o55bo6bo20b2o11b2o23b2o6b3o$427bo56b2o6b3o18bo36bo9bo$425bobo66bo
15b3o38b3o$425b2o83bo42bo2$529b2o$224b2o304bo$225bo254b2o45b3o$222b3o
255bobo44bo$222bo259bo$482b2o2$140b2o3b2o$138b3obo2b2o$137bo4bo$137bo
2b2ob4o260b2o15b2o38b2o$136b2obobobo2bo259bobo15b2o37bobo$137bobobobo
262bo25b2o29bo25b2o$137bobob2o262b2o25bo29b2o25bo$138bo291bobo37b2o15b
obo$256bo173b2o38b2o15b2o$151b2o85b2o14b5o$142b2o7bo87bo13bo5bo$84bo
57b2o5bobo87bobo12b3o2bo$82b3o64b2o89b2o15bob2o$81bo172b4o2bo151b2o$
81b2o166b2o3bo3b2o153bo$249b2o4b3o110bo44bobo$122b2o133bo108b3o45b2o$
123bo133bob2o104bo$123bobo130b2ob2o104b2o$50b2o72b2o13b2o$51bo88bo201b
o42bo83b2o$51bobo83b3o108b2o92b3o38b3o15bo66bobo$52b2o2b2o37bo41bo110b
o86bo9bo36bo18b3o6b2o56bo$56b2o35b3o15bo9bo127b3o83b3o6b2o23b2o11b2o
20bo6bo55b2o$92bo18b3o5b3o129bo86bo30b2o32b2o6bobo$79b2o11b2o20bo3bo
218b2o73b2o$79b2o32b2o3b2o2$425b2o58b2o$425bobo57bobo$400b2o25bo59bo$
167bo232b2o25b2o58b2o$167b3o$170bo162bo23b2o$50b2o52b2o63b2o161bobo22b
o$49bobo16b2o34b2o227bo14b2o8b3o62b2o$49bo18bobo45b2o230bo11bo62bobo$
48b2o20bo44bo2bo230b3o55b2o16bo$64b2o4b2o44b2o4b2o227bo56bo16b2o50b2o$
64bobo55bobo280b3o6bo53b2o7b2o$66bo57bo210b2o32b2o34bo7bobo53bo$57b2o
7b2o56b2o53b2o153bobo33bo43bo54bobo$57b2o20b2o33b2o56b2o5bobo152bo32b
3o100b2o$80bo34bo56b2o7bo151b2o32bo85bo32b2o$77b3o32b3o66b2o166b2o100b
3o32bo$77bo34bo236bobo52b2o21bo22bo33bobo$168bo182bo52b2o21b3o20b2o32b
2o$46bo120bobob2o169b2o7b2o40b2o35bo$46b3o118bobobobo168b2o50bo34b2o
38bo$49bo116b2obobobo2bo217bobo72b3o$48b2o61b2o54bo2b2ob4o218b2o63bo
11bo$111bobo53bo4bo287b3o8b2o14bo$113bo54b3obo2b2o286bo22bobo$113b2o
55b2o3b2o285b2o23bo2$332b2o58b2o25b2o$68bo264bo59bo25b2o$66b3o264bobo
57bobo$65bo268b2o58b2o$65b2o2$407b2o73b2o$407bobo6b2o32b2o30bo$186bo
165b2o55bo6bo20b2o11b2o23b2o6b3o$184b5o14b2o147bo56b2o6b3o18bo36bo9bo$
44b2o137bo5bo13bo146bobo66bo15b3o38b3o$45bo137bo2b3o12bobo146b2o83bo
42bo$45bobo134b2obo15b2o$46b2o134bo2b4o265b2o$183b2o3bo3b2o261bo$185b
3o4b2o211b2o45b3o$185bo219bobo44bo$182b2obo221bo$182b2ob2o220b2o3$193b
2o$194bo18bo$191b3o19b3o116b2o15b2o38b2o$60b2o129bo24bo114bobo15b2o37b
obo$60b2o153b2o114bo25b2o29bo25b2o$330b2o25bo29b2o25bo$355bobo37b2o15b
obo$355b2o38b2o15b2o4$225b2o$218b2o5bobo109b2o$218b2o7bo110bo$227b2o
64bo44bobo$291b3o45b2o$214bo75bo$213bobob2o71b2o$213bobobobo$212b2obob
obo2bo44bo42bo83b2o$213bo2b2ob4o44b3o38b3o15bo66bobo$9bo203bo4bo41bo9b
o36bo18b3o6b2o56bo$9b3o202b3obo2b2o37b3o6b2o23b2o11b2o20bo6bo55b2o$12b
o203b2o3b2o40bo30b2o32b2o6bobo$11b2o249b2o73b2o3$2ob2o345b2o58b2o$2obo
346bobo57bobo$3bo321b2o25bo59bo$3b3o4b2o313b2o25b2o58b2o$b2o3bo3b2o$o
2b4o251bo23b2o$2obo15b2o211bo24bobo22bo$bo2b3o12bobo208b5o14b2o7bo14b
2o8b3o62b2o$bo5bo13bo207bo5bo13bo23bo11bo62bobo$2b5o14b2o206bo2b3o12bo
bo24b3o55b2o16bo$4bo223b2obo15b2o27bo38b2o16bo16b2o50b2o$228bo2b4o80bo
14b3o6bo53b2o7b2o$229b2o3bo3b2o20b2o32b2o20b3o11bo7bobo53bo$231b3o4b2o
19bobo33bo22bo20bo54bobo$231bo27bo32b3o100b2o$228b2obo26b2o32bo85bo32b
2o$228b2ob2o41b2o100b3o32bo$274bobo52b2o21bo22bo33bobo$276bo52b2o21b3o
20b2o32b2o$239b2o26b2o7b2o40b2o35bo$240bo26b2o50bo34b2o38bo$237b3o79bo
bo72b3o$237bo82b2o63bo11bo$385b3o8b2o14bo$388bo22bobo$387b2o23bo2$317b
2o25b2o$318bo25b2o$318bobo$319b2o3$332b2o73b2o$332bobo6b2o32b2o30bo$
277b2o55bo6bo20b2o11b2o23b2o6b3o$277bo56b2o6b3o18bo36bo9bo$275bobo66bo
15b3o38b3o$275b2o83bo42bo2$379b2o$380bo$330b2o45b3o$330bobo44bo$332bo$
332b2o5$257b2o15b2o38b2o$256bobo15b2o37bobo$256bo25b2o29bo25b2o$255b2o
25bo29b2o25bo$280bobo37b2o15bobo$280b2o38b2o15b2o5$262b2o$263bo$263bob
o$264b2o4$319b2o$251bo66bobo$251b3o6b2o56bo$254bo6bo55b2o$253b2o6bobo$
262b2o$223bo$222bobo$222bobo50b2o58b2o$223bo51bobo57bobo$250b2o25bo59b
o$250b2o25b2o58b2o4$273b2o$273bobo$257b2o16bo$240b2o16bo16b2o50b2o$
240bo14b3o6bo53b2o7b2o$241b3o11bo7bobo53bo$243bo20bo54bobo$320b2o$303b
o32b2o$301b3o32bo$254b2o21bo22bo33bobo$254b2o21b3o20b2o32b2o$243b2o35b
o$244bo34b2o38bo$244bobo72b3o$245b2o63bo11bo$310b3o8b2o14bo$313bo22bob
o$312b2o23bo2$242b2o25b2o$243bo25b2o$243bobo$244b2o3$257b2o73b2o$257bo
bo6b2o32b2o30bo$259bo6bo20b2o11b2o23b2o6b3o$259b2o6b3o18bo36bo9bo$269b
o15b3o38b3o$285bo42bo2$304b2o$305bo$255b2o45b3o$255bobo44bo$257bo$257b
2o3$283b2o3b2o$281b3obo2b2o$239b2o39bo4bo$238bobo39bo2b2ob4o$238bo25b
2o13b2obobobo2bo$237b2o25bo15bobobobo$245b2o15bobo15bobob2o$245b2o15b
2o17bo2$294b2o$285b2o7bo$285b2o5bobo$292b2o7$244b2o36b2o$243bobo37bo$
243bo36b3o$242b2o36bo2$282b2o3b2o$282b2o2bob3o$286bo4bo$282b4ob2o2bo$
282bo2bobobob2o$285bobobobo$286b2obobo$254b2o34bo$254b2o$266b2o8b2o$
266bobo8bo7b2o$268bo8bobo5b2o$268b2o8b2o2$243b2o$244bo19b2o$244bobo17b
o56bo$245b2o15bobo38b2o14b5o$249b2o6bo4b2o40bo13bo5bo$248bo2bo4bobo29b
2o14bobo12b3o2bo$249b2o5bobo29bo16b2o15bob2o$245b2o10bo31b3o27b4o2bo$
244bobo44bo22b2o3bo3b2o$244bo69b2o4b3o$243b2o77bo$258b2o62bob2o$258bo
62b2ob2o$259b3o$261bo$277b2o34b2o$278bo34bo$278bobo33b3o$279b2o2b2o31b
o5bo$283b2o35b3o15bo9bo$319bo18b3o5b3o$306b2o11b2o20bo3bo$306b2o32b2o
3b2o5$345bo$344bo$344b3o$219bo57b2o52b2o$217b5o14b2o38bobo16b2o34b2o$
216bo5bo13bo39bo18bobo45b2o$216bo2b3o12bobo38b2o20bo44bo2bo$215b2obo
15b2o55b2o4b2o44b2o4b2o$215bo2b4o69bobo55bobo$216b2o3bo3b2o66bo57bo$
218b3o4b2o57b2o7b2o56b2o$218bo65b2o20b2o33b2o$215b2obo88bo34bo$215b2ob
2o84b3o32b3o$304bo34bo2$226b2o$227bo$224b3o47b2o$224bo50bo$275bobo$
276b2o2$228bo$226b3o$225bo69bo$225b2o66b3o$292bo$292b2o5$215b2o$214bob
o5b2o47b2o$214bo7b2o48bo$213b2o57bobo64b2o$273b2o65bo$227bo39bo72bobo$
223b2obobo38b3o71b2o2b2o37bo$222bobobobo41bo74b2o35b3o15bo9bo$219bo2bo
bobob2o39b2o110bo18b3o5b3o$219b4ob2o2bo139b2o11b2o20bo3bo$223bo4bo139b
2o32b2o3b2o$219b2o2bob3o$219b2o3b2o3$279b2o6b2o$272b2o5bobo5b2o$272b2o
7bo$281b2o56b2o52b2o$338bobo16b2o34b2o$268bo69bo18bobo45b2o$267bobob2o
64b2o20bo44bo2bo$267bobobobo79b2o4b2o44b2o4b2o$266b2obobobo2bo76bobo
55bobo$267bo2b2ob4o78bo57bo$267bo4bo73b2o7b2o56b2o$268b3obo2b2o53bo15b
2o20b2o33b2o$270b2o3b2o53b3o36bo34bo$333bo32b3o32b3o$332b2o32bo34bo6$
401b2o$401bobo$403bo$403b2o2$357bo$355b3o$354bo$354b2o10$334b2o81bo$
334b2o79b3o$414bo$414b2o7$349b2o53b2o$349b2o52bobo5b2o$403bo7b2o$402b
2o2$416bo$412b2obobo$411bobobobo$408bo2bobobob2o$408b4ob2o2bo$412bo4bo
$408b2o2bob3o$408b2o3b2o!
Now there were some interesting issues. The main issue was that adding only one bit was toggling the mod8 periods by 4, detail that I missed. The solution was to jump in bits of 2, thus all the periods are in mod 8.

I was also thinking to post this script in the script section of this forum, what do you think?
Last edited by simsim314 on April 2nd, 2014, 2:21 am, edited 3 times in total.

mniemiec
Posts: 1590
Joined: June 1st, 2013, 12:00 am

Re: Glider Guns of large periods

Post by mniemiec » April 1st, 2014, 9:17 pm

Herik Zorneck wrote:I think the patterns I design are simple, but are not so trivial
If they were so trivial, these gliders guns should be appear in the list and this is not the case
According to your definition of trivial, everything was built from something already known, using one block or fish hook, for example, would be a trivial pattern
One thing that seems to be a deciding factor is how important and how unique a reaction is. There is exactly one way to rub two queen bees together to get a glider - so this is important. There are dozens of way of rubbing two together to mutually remove the eggs, so while the idea is interesting, enumerating all possible ways of doing this is not. Similarly, there are dozens of ways two glider streams can interact to produce nothing, and quite a few that can double the period. Combine this with different separations and orientations of the guns, there are hundreds of ways to make two-glider guns, but each individual one is not interesting. The idea of a grain of sand is interesting, but every individual grain on the beach is not.

User avatar
dvgrn
Moderator
Posts: 11166
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Glider Guns of large periods

Post by dvgrn » April 1st, 2014, 11:47 pm

simsim314 wrote:Now there were some interesting issues. The main issue was that adding only one bit was toggling the mod8 periods by 4, detail that I missed. The solution was to jump in bits of 2, thus all the periods are in mod 8.
At some point it may be worth simplifying this with a set of eight timing-adjustment circuits that fit in exactly the same bounding box -- but two bits at a time clearly works for now!

Is there a reason why building a 10^10-gun is so much faster than building a 10^11-gun? It might be worth adding a sleep() statement or some such, to keep Golly from going unresponsive on the longer builds. Or is there some calculation that the current script is doing very inefficiently?
simsim314 wrote:I was also thinking to post this script in the script section of this forum, what do you think?
Sure -- why not? Can work up to the O(sqrt log N) version there, maybe.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » April 2nd, 2014, 1:54 am

OK it was some loop the was going crazy for large numbers. Fixed. Works fine now for VERY large numbers, like 1363005552434666078217421284621279933627102780881053358473.

Code: Select all

import golly as g
from glife import *
import random
from glife.text import *


class Glider:
   def __init__(self, x, y, dx, dy, gen, state):
      self.x = x
      self.y = y
      self.gen = gen
      self.state = state 
      self.dx = dx
      self.dy = dy
   def Place(self):
      gld = g.parse("3o$2bo$bo!", 0, 0, self.dx, 0, 0, self.dy)
      gld = g.evolve(gld, self.state)
      g.putcells(gld, self.x, self.y)
   def PlaceD(self, deltax, deltay):
      gld = g.parse("3o$2bo$bo!", 0, 0, self.dx, 0, 0, self.dy)
      gld = g.evolve(gld, self.state)
      g.putcells(gld, self.x + deltax, self.y + deltay)
      
   def Description(self):
      return " x {0} , y {1} , gen {2} , state {3}, dx {4}, dy {5} ".format(self.x, self.y, self.gen, self.state, self.dx, self.dy)
   
   def NextIter(self):
      if(self.state < 3):
         self.state += 1
      else:
         self.x += self.dx
         self.y -= self.dy
         self.state = 0
      self.gen += 1
      
   def PrevIter(self):
      if(self.state > 0):
         self.state -= 1
      else:
         self.x -= self.dx
         self.y += self.dy
         self.state = 3
      self.gen -= 1
      
   def NextIters(self, n):
      
      if n == 0: 
         return
      
      if n > 0: 
         for x in xrange(0, n):
            self.NextIter()
      
      if n < 0: 
         for x in xrange(0, -n):
            self.PrevIter()
            
   def BringToGeneration(self, n):
      self.NextIters(n - self.gen)
      
   def Copy(self):
      return Glider(self.x, self.y, self.dx, self.dy, self.gen, self.state)
      
class Snark:
   def __init__(self, glider, dist, isRight):
      self.glider = glider
      self.dist = dist
      self.isRight = isRight ^ (glider.dx == 1) ^ (glider.dy == 1)
      
      self.x = glider.x + dist * glider.dx 
      self.y = glider.y - dist * glider.dy 
      
      if self.isRight:
         self.outputGlider = Glider(self.x + 7 * self.glider.dx, self.y, self.glider.dx, -self.glider.dy, 32 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
      else: 
         self.outputGlider = Glider(self.x, self.y - 9 * self.glider.dy, -self.glider.dx, self.glider.dy, 40 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
         
   def Place(self):
      if self.isRight:
         mir = g.parse("5$8b2o3b2o$8b2o2bob3o$12bo4bo$8b4ob2o2bo$8bo2bobobob2o$11bobobobo$12b2obobo$16bo2$2b2o$3bo7b2o$3bobo5b2o$4b2o7$14b2o$14bo$15b3o$17bo!", -10, -20, 1, 0, 0, 1)
      else:
         mir = g.parse("14$22bo$4b2o14b5o$5bo13bo5bo$5bobo12b3o2bo$6b2o15bob2o$20b4o2bo$15b2o3bo3b2o$15b2o4b3o$23bo$23bob2o$22b2ob2o3$14b2o$14bo$15b3o$17bo!", -10, -20, 1, 0, 0, 1)
         
      mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
      g.putcells(mir, self.x, self.y) 

class StaticMirror:
   def __init__(self, glider, dist, isRight):
      self.glider = glider
      self.dist = dist
      self.isRight = isRight ^ (glider.dx == 1) ^ (glider.dy == 1)
      
      self.x = glider.x + dist * glider.dx 
      self.y = glider.y - dist * glider.dy 
      
      if self.isRight:
         self.outputGlider = Glider(self.x + 78 * self.glider.dx, self.y - 10 * self.glider.dy, self.glider.dx, -self.glider.dy, 359 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
      else: 
         self.outputGlider = Glider(self.x + 10 * self.glider.dx, self.y - 80 * self.glider.dy, -self.glider.dx, self.glider.dy, 351 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
         
   def Place(self):
      if self.isRight:
         mir = g.parse("12$69b2o$69b2o9$84b2o$84b2o10$64b2o$65bo$62b3o$13b2o47bo$14bo$14bobo$15b2o8$18bo34bo$16b3o32b3o$15bo34bo$15b2o33b2o20b2o$5b2o56b2o7b2o$6bo57bo$6bobo55bobo$7b2o4b2o44b2o4b2o$12bo2bo44bo20b2o$13b2o45bobo18bo$25b2o34b2o16bobo$25b2o52b2o8$11b2o3b2o32b2o$12bo3bo20b2o11b2o$9b3o5b3o18bo$9bo9bo15b3o35b2o$35bo37b2o2b2o$77bobo$79bo$79b2o5$48b2o$49bo$46b3o$46bo!", -10, -60, 1, 0, 0, 1)
      else:
         mir = g.parse("7$58b2o$58b2o2$26bo$24b3o$8bo14bo$8b3o12b2o$11bo$10b2o3$11b2o$11b2o17b2o$30b2o2$68b2o$68b2o3$27b2o$27bo19b2o$28b3o15bobo$30bo15bo$24b2o19b2o$24bo$25b3o$27bo6$33b2o$33bo$14b2o15bobo$14b2o15b2o$2b2o$bobo$bo$2o8$13b2o$12bobo$12bo$11b2o9$23b2o$23b2o6$12b2o$13bo19b2o$13bobo17bo$14b2o15bobo8b2o$26bo4b2o9bo$25bobo15b3o$25bobo17bo$14b2o10bo$13bobo$13bo$12b2o$27b2o$27bo$28b3o$30bo!", -20, -80, 1, 0, 0, 1)
         
      mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
      g.putcells(mir, self.x, self.y) 

class ColorSwitch:
   def __init__(self, glider, dist):
      self.glider = glider
      self.dist = dist
      
      self.x = glider.x + dist * glider.dx 
      self.y = glider.y - dist * glider.dy 
      
      self.outputGlider = Glider(self.x + 79 * self.glider.dx, self.y - 50 * self.glider.dy, self.glider.dx, self.glider.dy, 368 + self.glider.gen + 4 * (dist - 1) + (4 - self.glider.state), 0)
         
   def Place(self):
      mir = g.parse("5$66b2o$66b2o11$80b2o$80bobo$82bo$82b2o6$61b2o$62bo$59b3o$59bo3$13b2o$14bo$14bobo$15b2o61b2o$78bo$79b3o$81bo2$15bo34bo$13b3o32b3o$12bo34bo$12b2o33b2o20b2o$2b2o56b2o7b2o$3bo57bo$3bobo55bobo$4b2o4b2o44b2o4b2o$9bo2bo44bo20b2o$10b2o45bobo18bo$22b2o34b2o16bobo$22b2o52b2o8$8b2o3b2o32b2o$9bo3bo20b2o11b2o$6b3o5b3o18bo$6bo9bo15b3o35b2o$32bo37b2o2b2o$74bobo$76bo$2b2o72b2o$2bobo$4bo$4b2o2$45b2o$46bo$43b3o$43bo!", 0, -60, 1, 0, 0, 1)
      mir = g.transform(mir, 0, 0, self.glider.dx, 0, 0, self.glider.dy)
      g.putcells(mir, self.x, self.y) 
      
class UniversalGliderGun():
   def __init__(self, x, y, period):
      self.x = x
      self.y = y
      self.period = period
      self.numBits = 3
   
   def PlaceStart(self, turnOnBit): 
      startPart = g.parse("6$44bo$43bobo$43bobo$44bo18$64b2o$65bo$65bobo$66b2o5$63b2o$64bo$64bobo$65b2o18$104b2o3b2o$102b3obo2b2o$60b2o39bo4bo$59bobo39bo2b2ob4o$59bo25b2o13b2obobobo2bo$58b2o25bo15bobobobo$66b2o15bobo15bobob2o$66b2o15b2o17bo2$115b2o$106b2o7bo$106b2o5bobo$113b2o7$65b2o36b2o$64bobo37bo$64bo36b3o$63b2o36bo2$103b2o3b2o$103b2o2bob3o$107bo4bo$103b4ob2o2bo$103bo2bobobob2o$106bobobobo$107b2obobo$75b2o34bo$75b2o$87b2o8b2o$87bobo8bo7b2o$89bo8bobo5b2o$89b2o8b2o2$64b2o$65bo19b2o$65bobo17bo56bo$66b2o15bobo38b2o14b5o$70b2o6bo4b2o40bo13bo5bo$69bo2bo4bobo29b2o14bobo12b3o2bo$70b2o5bobo29bo16b2o15bob2o$66b2o10bo31b3o27b4o2bo$65bobo44bo22b2o3bo3b2o$65bo69b2o4b3o$64b2o77bo$79b2o62bob2o$79bo62b2ob2o$80b3o$82bo$98b2o34b2o$99bo34bo$99bobo33b3o$100b2o2b2o31bo5bo$104b2o35b3o15bo9bo$140bo18b3o5b3o$127b2o11b2o20bo3bo$127b2o32b2o3b2o8$40bo57b2o52b2o$38b5o14b2o38bobo16b2o34b2o$37bo5bo13bo39bo18bobo45b2o$37bo2b3o12bobo38b2o20bo44bo2bo$36b2obo15b2o55b2o4b2o44b2o4b2o$36bo2b4o69bobo55bobo$37b2o3bo3b2o66bo57bo$39b3o4b2o57b2o7b2o56b2o$39bo65b2o20b2o33b2o$36b2obo88bo34bo$36b2ob2o84b3o32b3o$125bo34bo2$47b2o$48bo$45b3o47b2o$45bo50bo$96bobo$97b2o2$49bo$47b3o$46bo69bo$46b2o66b3o$113bo$113b2o5$36b2o$35bobo5b2o47b2o$35bo7b2o48bo$34b2o57bobo$94b2o$48bo39bo$44b2obobo38b3o$43bobobobo41bo$40bo2bobobob2o39b2o$40b4ob2o2bo$44bo4bo$40b2o2bob3o$40b2o3b2o3$100b2o6b2o$93b2o5bobo5b2o$93b2o7bo$102b2o2$89bo$88bobob2o$88bobobobo$87b2obobobo2bo$88bo2b2ob4o$88bo4bo$89b3obo2b2o$91b2o3b2o26$238bo$236b3o$235bo$235b2o7$225b2o$224bobo5b2o$224bo7b2o$223b2o2$237bo$233b2obobo$232bobobobo$229bo2bobobob2o$229b4ob2o2bo$233bo4bo$229b2o2bob3o$229b2o3b2o!", 0, -60, 1, 0, 0, 1)      
      g.putcells(startPart, self.x, self.y) 
      
      if turnOnBit:
         blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
         g.putcells(blocker, self.x, self.y) 
   
   def PlaceEnd(self, turnOnBit, numBits): 
      startPart = g.parse("121bo$81b2o38b3o$82bo41bo14bo$82bobo38b2o12b3o$83b2o2b2o47bo$87b2o47b2o3$135b2o$116b2o17b2o$116b2o6$81b2o36b2o$80bobo16b2o19bo$80bo18bobo15b3o$79b2o20bo15bo$95b2o4b2o19b2o$95bobo25bo$97bo22b3o$88b2o7b2o21bo$88b2o7$78b2o$79bo$79bobo$80b2o$96bo$94b3o$93bo$93b2o28b2o$122bobo$122bo29b2o$121b2o29bobo$61b2o91bo$38bo23bo64b2o25b2o$36b3o23bobo61bobo4b2o$35bo27b2o61bo7bo$35b2o88b2o4b3o$131bo$12bo42bo83b2o$12b3o38b3o44b2o36bobo$5bo9bo36bo47b2o36bo$5b3o6b2o23b2o11b2o83b2o$8bo30b2o$7b2o$95b2o$95b2o$99b2o54b2o$99b2o54bobo$157bo$157b2o$64b2o27b2o$3bo23b2o35b2o11b2o14b2o$2bobo22bo49bo$3bo14b2o8b3o47b3o$18bo11bo49bo$19b3o$21bo125b2o$138b2o7b2o$5b2o32b2o98bo$4bobo33bo98bobo$4bo32b3o100b2o$3b2o32bo85bo32b2o$19b2o100b3o32bo$19bobo52b2o21bo22bo33bobo$21bo52b2o21b3o20b2o32b2o$12b2o7b2o40b2o35bo$12b2o50bo34b2o38bo$64bobo72b3o$65b2o63bo11bo$130b3o8b2o14bo$133bo22bobo$132b2o23bo2$2b2o58b2o25b2o$3bo59bo25b2o$3bobo57bobo$4b2o58b2o3$77b2o$77bobo6b2o32b2o$22b2o55bo6bo20b2o11b2o23b2o23bo$22bo56b2o6b3o18bo36bo22b3o$20bobo66bo15b3o38b3o18bo$20b2o83bo42bo18b2o2$124b2o$125bo49b2ob2o$75b2o45b3o51bob2o$75bobo44bo53bo$77bo90b2o4b3o$77b2o89b2o3bo3b2o$173b4o2bo$159b2o15bob2o$158bobo12b3o2bo$158bo13bo5bo$2b2o15b2o38b2o96b2o14b5o$bobo15b2o37bobo114bo$bo25b2o29bo25b2o129b2o$2o25bo29b2o25bo131bo$25bobo37b2o15bobo131bobo$25b2o38b2o15b2o133b2o$242b2o$242b2o2$210bo$208b3o$192bo14bo$192b3o12b2o$195bo$194b2o3$64b2o129b2o$63bobo129b2o17b2o$63bo150b2o$62b2o$252b2o$252b2o3$20b2o58b2o129b2o$20bobo57bobo128bo19b2o$22bo59bo40bo88b3o15bobo$22b2o58b2o39b3o88bo15bo$126bo81b2o19b2o$125b2o81bo$209b3o$18b2o191bo$18bobo93b2ob2o$20bo93b2obo$20b2o50b2o43bo$63b2o7b2o43b3o4b2o$64bo50b2o3bo3b2o$64bobo47bo2b4o96b2o$65b2o47b2obo15b2o82bo$48bo32b2o32bo2b3o12bobo62b2o15bobo$46b3o32bo33bo5bo13bo62b2o15b2o$22bo22bo33bobo34b5o14b2o$22b3o20b2o32b2o37bo$25bo$24b2o38bo$64b3o$55bo11bo$55b3o8b2o14bo$58bo22bobo$57b2o23bo3$197b2o$196bobo$196bo$195b2o2$77b2o$45b2o30bo$32b2o11b2o23b2o6b3o$33bo36bo9bo$30b3o38b3o82b2o$30bo42bo82b2o2$49b2o156b2o$50bo156b2o$47b3o93b2o$47bo96bo$144bobo$145b2o2$196b2o$197bo19b2o5b2o$163b2o32bobo17bo6bo$163b2o15bo17b2o15bobo7b3o$178b3o29bo4b2o10bo$145b2o30bo31bobo$144bobo30b2o30bobo$144bo53b2o10bo$143b2o52bobo$197bo$196b2o$211b2o$154b2o55bo$153bobo56b3o$153bo60bo$152b2o5$174b2o$174bobo$176bo$176b2o17$215b2o$216bo$216bobo$217b2o$242b2o$242b2o2$210bo$208b3o$192bo14bo$192b3o12b2o$195bo$194b2o3$195b2o$195b2o17b2o$214b2o2$252b2o$252b2o3$211b2o$211bo19b2o$212b3o15bobo$214bo15bo$208b2o19b2o$208bo$209b3o$211bo6$217b2o$217bo$198b2o15bobo$198b2o15b2o12$197b2o$196bobo$196bo$195b2o9$207b2o$207b2o6$196b2o$197bo19b2o5b2o$197bobo17bo6bo$198b2o15bobo7b3o$210bo4b2o10bo$209bobo$209bobo$198b2o10bo$197bobo$197bo$196b2o$211b2o$211bo$212b3o$214bo!", 1, -108, 1, 0, 0, 1)      
      g.putcells(startPart, self.x + 75 * numBits, self.y - numBits * 75) 
      
      if turnOnBit:
         blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
         g.putcells(blocker, self.x + 75 * numBits, self.y - numBits * 75) 
   
   def PlaceBitStream(self, blocks): 
      d = 0
      
      for toBlock in blocks:
         bit = g.parse("87b2o$88bo$43bo44bobo$41b3o45b2o$40bo$40b2o2$17bo42bo$17b3o38b3o15bo$10bo9bo36bo18b3o6b2o$10b3o6b2o23b2o11b2o20bo6bo$13bo30b2o32b2o6bobo$12b2o73b2o5$75b2o$75b2o2$8bo23b2o$7bobo22bo$8bo14b2o8b3o$23bo11bo$24b3o55b2o$26bo56bo$80b3o6bo$10b2o32b2o34bo7bobo$9bobo33bo43bo$9bo32b3o$8b2o32bo$24b2o$24bobo52b2o$26bo52b2o$17b2o7b2o40b2o$17b2o50bo$69bobo$70b2o5$7b2o58b2o25b2o$8bo59bo25b2o$8bobo57bobo$9b2o58b2o3$82b2o$82bobo6b2o$27b2o55bo6bo$27bo56b2o6b3o$25bobo66bo$25b2o4$80b2o$80bobo$82bo$82b2o5$7b2o15b2o38b2o$6bobo15b2o37bobo$6bo25b2o29bo25b2o$5b2o25bo29b2o25bo$30bobo37b2o15bobo$30b2o38b2o15b2o5$12b2o$13bo$13bobo$14b2o4$69b2o$bo66bobo$b3o6b2o56bo$4bo6bo55b2o$3b2o6bobo$12b2o3$25b2o58b2o$25bobo57bobo$2o25bo59bo$2o25b2o58b2o4$23b2o$23bobo$7b2o16bo$8bo16b2o50b2o$5b3o6bo53b2o7b2o$5bo7bobo53bo$14bo54bobo$70b2o$53bo32b2o$51b3o32bo$4b2o21bo22bo33bobo$4b2o21b3o20b2o32b2o$30bo$29b2o38bo$69b3o$60bo11bo$60b3o8b2o14bo$63bo22bobo$62b2o23bo2$19b2o$19b2o5$7b2o73b2o$7bobo6b2o32b2o30bo$9bo6bo20b2o11b2o23b2o6b3o$9b2o6b3o18bo36bo9bo$19bo15b3o38b3o$35bo42bo2$54b2o$55bo$5b2o45b3o$5bobo44bo$7bo$7b2o!", 71, -142, 1, 0, 0, 1)      
         g.putcells(bit, self.x + d, self.y - d) 
         
         if toBlock: 
            blocker = g.parse("$b2o$bo$2b3o$4bo!", 60,-43, 1, 0, 0, 1)
            g.putcells(blocker,self.x + 75 + d, self.y - 75 - d) 
            
         d += 75
   def PlaceReflector(self): 
      blocker = g.parse("9b2o$10bo$10bobo$11b2o2b2o37bo$15b2o35b3o15bo9bo$51bo18b3o5b3o$38b2o11b2o20bo3bo$38b2o32b2o3b2o8$9b2o52b2o$8bobo16b2o34b2o$8bo18bobo45b2o$7b2o20bo44bo2bo$23b2o4b2o44b2o4b2o$23bobo55bobo$25bo57bo$16b2o7b2o56b2o$o15b2o20b2o33b2o$3o36bo34bo$3bo32b3o32b3o$2b2o32bo34bo6$71b2o$71bobo$73bo$73b2o2$27bo$25b3o$24bo$24b2o10$4b2o$4b2o9$19b2o$19b2o!", 263,-15, 1, 0, 0, 1)
      g.putcells(blocker, self.x - 112, self.y + 112) 
   
   def ZeroPeriodMod8(self, mod8Value): 
      if mod8Value == 0: 
         return 8248
      
      if mod8Value == 1:
         return 8281
      
      if mod8Value == 2:
         return 8642

      if mod8Value == 3:
         return 8115
      
      if mod8Value == 4:
         return 8212
      
      if mod8Value == 5:
         return 8045
      
      if mod8Value == 6:
         return 8414
      
      if mod8Value == 7:
         return 8559
   
   def HoldMechanismGliderPrepare(self, mod8Value):
      
      if mod8Value == 0:
      
         golly.select( [self.x +111 + 75,self.y-140 - 75,4,4] )
         golly.clear(0)
         gld = Glider(self.x +113 + 75,self.y -140 - 75, 1,1,0,0)
         snk = Snark(gld, 15, False)
         snk.Place()
         return snk.outputGlider
         
      if mod8Value == 1:
      
         golly.select( [self.x +111,self.y -140,4,4] )
         golly.clear(0)
         gld = Glider(self.x +113, self.y -140, 1,1,0,0)
         snk = Snark(gld, 15, False)
         snk.Place()
         return snk.outputGlider
         
      if mod8Value == 2:
         
         golly.select( [self.x +111 +  75,self.y-140 - 75,4,4] )
         golly.clear(0)
         gld = Glider(self.x +113 +  75, self.y-140 -  75, 1,1,0,0)
         snk = Snark(gld, 15, False)
         snk.Place()
         return snk.outputGlider
         
      if mod8Value == 3:

         golly.select( [self.x +111 + 75,self.y-140 - 75,4,4] )
         golly.clear(0)
         gld = Glider(self.x +113 + 75, self.y-140 - 75, 1,1,0,0)
         snk = Snark(gld, 15, False)
         snk.Place()
         return snk.outputGlider
         
      if mod8Value == 4:

         golly.select( [self.x +78,self.y-100,4,4] )
         golly.clear(0)
         gld = Glider(self.x +80, self.y-100, -1,1,0,0)
         return gld
         
         
      if mod8Value == 5:

         golly.select( [self.x +81,self.y-133,4,4] )
         golly.clear(0)
         gld = Glider(self.x +82,self.y -133, -1,1,0,0)
         return gld 
         
      if mod8Value == 6:
      
         golly.select( [self.x +111,self.y-140,4,4] )
         golly.clear(0)
         gld = Glider(self.x +113, self.y-140, 1,1,0,0)
         snk = Snark(gld, 15, False)
         snk.Place()
         return snk.outputGlider
      
      if mod8Value == 7:
      
         golly.select( [self.x +81,self.y-133,4,4] )
         golly.clear(0)
         gld = Glider(self.x +82, self.y-133, -1,1,0,0)
         return gld
   
   def SnarkSnake(self, Mod8Multiplier, gld):
   
      a = [0,-1, -1, -1, -1, -1, -1]
      
      if self.SnarkSnakeCalculationsNew(Mod8Multiplier, gld, [0], False) <= 0:
         return Mod8Multiplier
      
      i = 0 
      idx = 0 
      while  self.SnarkSnakeCalculationsNew(Mod8Multiplier, gld, a , False) > 0:
         i+= 1
         
         if i > 75 * (self.numBits - 1) - 40:
            idx += 1
            i = 0 
            
         a[idx] = i
         
      
      a[idx] -= 1
      
      return self.SnarkSnakeCalculationsNew(Mod8Multiplier, gld, a, True)

      '''
      bestDist = -1
      bestD = -1 
      
      if not self.SnarkSnakeCalculations(Mod8Multiplier, gld, 0, False):
         return Mod8Multiplier
      
      for d in xrange(0, 75 * (self.numBits - 1) - 40):
         val = self.SnarkSnakeCalculations(Mod8Multiplier, gld, d, False)
         if  val > bestDist:
            val = bestDist
            bestD = d
         
      return self.SnarkSnakeCalculations(Mod8Multiplier, gld, bestD, True)
      '''      
      
   def SnarkSnakeCalculations(self, Mod8Multiplier, gldIn, delta, toPlace):
      
      curDist = Mod8Multiplier
      
      gld = gldIn.Copy()
      
      i = 0 
      x = gld.x
      
      while True: 
         if curDist < 55 + (x - gld.x) + delta: 
            if toPlace: 
               return curDist   
            break
         
         if i == 0: 
            degrees = [(True, 22), (False, 15 + delta), (False, 15), (True, 17 + delta)]
         else: 
            degrees = [(True, 15), (False, 15 + delta), (False, 15), (True, 17 + delta)]
         for deg in degrees: 
            sn = Snark(gld, deg[1], deg[0])
            if toPlace:
               sn.Place()
            gld = sn.outputGlider
      
         curDist -= (26 + delta)
         i += 1
      
      return curDist
   
   def SnarkSnakeCalculationsNew(self, Mod8Multiplier, gldIn, delta, toPlace):
      
      curDist = Mod8Multiplier
      
      gld = gldIn.Copy()
      
      i = 0 
      x = gld.x
      
      for i in xrange(0, len(delta)):
         if delta[i] >= 0:
            if curDist < 75 + (x - gld.x) + delta[i]: 
               return -1
            
            if i == 0: 
               degrees = [(True, 25), (False, 15 + delta[i]), (False, 15), (True, 17 + delta[i])]
            else: 
               degrees = [(True, 15), (False, 15 + delta[i]), (False, 15), (True, 17 + delta[i])]
               
            for deg in degrees: 
               sn = Snark(gld, deg[1], deg[0])
               if toPlace:
                  sn.Place()
               gld = sn.outputGlider
         
            curDist -= (26 + delta[i])
            
      return curDist
      
   def PlaceHoldMechanism(self, period0):
      
      mod8Value = period0 % 8 
      Mod8Multiplier = (period0 - self.CalculateZeroPeriod(self.numBits, mod8Value)) / 8
      gld = self.HoldMechanismGliderPrepare(mod8Value)
      Mod8Multiplier = self.SnarkSnake(Mod8Multiplier, gld)
      
      if mod8Value == 0: 
      
         snk = Snark(gld, 15 + Mod8Multiplier, False)
         snk.Place()
         sw = ColorSwitch(snk.outputGlider, 10)
         sw.Place()
         snk = Snark(sw.outputGlider, 88 + 75, False)
         snk.Place()
         return 8248 + 8 * Mod8Multiplier
      
      if mod8Value == 1:
      
         snk = Snark(gld, 15 + Mod8Multiplier, False)
         snk.Place()
         snk = StaticMirror(snk.outputGlider, 122, False)
         snk.Place()
         return 8281 + 8 * Mod8Multiplier
      
      if mod8Value == 2:
         
         snk = StaticMirror(gld, 15 + Mod8Multiplier, False)
         snk.Place()
         sw = ColorSwitch(snk.outputGlider, 10)
         sw.Place()
         snk = StaticMirror(sw.outputGlider, 17 +75, False)
         snk.Place()
         return 8642 + 8 * Mod8Multiplier

      if mod8Value == 3:

         snk = Snark(gld, 15 + Mod8Multiplier, False)
         snk.Place()
         snk = StaticMirror(snk.outputGlider, 122 + 75, False)
         snk.Place()
         return 8115 + 8 * Mod8Multiplier
      
      if mod8Value == 4:

         snk = Snark(gld, 15 + Mod8Multiplier, False)
         snk.Place()
         sw = ColorSwitch(snk.outputGlider, 10)
         sw.Place()
         snk = Snark(sw.outputGlider, 32, False)
         snk.Place()
         return 8212 + 8 * Mod8Multiplier
      
      if mod8Value == 5:
      
         snk = Snark(gld, 15 + Mod8Multiplier, False)
         snk.Place()
         snk = Snark(snk.outputGlider, 124, False)
         snk.Place()
         return 8045 + 8 * Mod8Multiplier
      
      if mod8Value == 6:
      
         snk = Snark(gld, 15 + Mod8Multiplier, False)
         snk.Place()
         sw = ColorSwitch(snk.outputGlider, 10)
         sw.Place()
         snk = Snark(sw.outputGlider, 88, False)
         snk.Place()
         return 8414 + 8 * Mod8Multiplier
      
      if mod8Value == 7:
      
         snk = StaticMirror(gld, 30 + Mod8Multiplier, False)
         snk.Place()
         snk = StaticMirror(snk.outputGlider, 53, False)
         snk.Place()
         return 8559 + 8 * Mod8Multiplier
   
   
   def RotationPeriod(self, numBits):
      return 3415 + 1200 * (numBits - 3)
   
   def RotationPeriodHoldBack(self, numBits):
      return 1200 * (numBits - 3)
   
   def BitHoldBack(self, numBits): 
      return 932 * (numBits - 3)
   
   def CalculateZeroPeriod(self, numBits, periodMod8):
      return self.BitHoldBack(numBits) + self.ZeroPeriodMod8(periodMod8) + self.RotationPeriodHoldBack(numBits)
   
   def CalculateMaxPeriod(self, numBits, periodMod8):
      return self.CalculateZeroPeriod(numBits, periodMod8) + (2**numBits - 1) * self.RotationPeriod(numBits)
   
   def CalculateNumBits(self, period):
      
      while self.CalculateMaxPeriod(self.numBits, period%8) < period:
         self.numBits += 2
      
      return self.numBits
   
   def DoAllCalculations(self):
      period = self.period
      
      if period < self.ZeroPeriodMod8(period % 8):
         golly.exit("The period is too low")
      
      numBits = self.CalculateNumBits(period)
      
      rot = self.RotationPeriod(numBits)
      zero = self.CalculateZeroPeriod(numBits, (period - self.RotationPeriod(numBits)) % 8)

      zeroMultiplier = (zero - zero % rot) / rot
      periodMultipler = (period - period % rot) / rot
      multiplier = periodMultipler - zeroMultiplier - 10
      period -= multiplier * rot 
      
      while period >= self.CalculateZeroPeriod(numBits, period % 8):
         multiplier += 1
         period -= rot     
         
      bits = 2**numBits - multiplier
      
      endBit = bits < 2**(numBits - 1)
      
      if not endBit: 
         bits -= 2**(numBits - 1)
         
      startBit = bits % 2 == 0
      bits = (bits - bits%2) / 2
      
      middlebits = []
      
      for i in xrange(0, self.numBits - 2):
         middlebits.extend([bits % 2 == 0])
         bits = (bits - bits%2) / 2
      
      period0 = period  + rot
      
      #golly.show('{0}, {1}, {2}'.format(startBit, middlebits[0], endBit))
      return [startBit, middlebits, endBit, period0]
      
   def Place(self): 
      values = self.DoAllCalculations();
      self.PlaceStart(values[0])
      self.PlaceBitStream(values[1])
      self.PlaceEnd(values[2],self.numBits - 1)
      self.PlaceReflector()
      gld = Glider(self.x + 167, self.y + 63, -1,-1,0,0)
      gld.Place()
      self.PlaceHoldMechanism(values[3])
      
      periodText = make_text (str(self.period))
      g.putcells(periodText,self.x - 50, self.y + 200) 
     

gen = g.getstring("Enter Gun Period: ")

g.select([0,0,1,1])
g.clear(1)
g.clear(0)



gun = UniversalGliderGun(0,0,int(gen))
gun.Place()

'''
for x in xrange(0, 100):
   gun = UniversalGliderGun(0,2000 * x,17985 + 12289 *  x)
   gun.Place()
'''

g.fit() 
   
After playing with it for a while I have found some amount of bugs...now working to fix them.
Last edited by simsim314 on April 2nd, 2014, 5:07 pm, edited 1 time in total.

User avatar
simsim314
Posts: 1824
Joined: February 10th, 2014, 1:27 pm

Re: Glider Guns of large periods

Post by simsim314 » April 2nd, 2014, 1:44 pm

Meanwhile I was thinking about the criteria for "small" glider gun.

Naturally we can think of few criteria for the therm small.

1. Small number of on cells (relevant for golly computation for example)
2. small in convex hull area (relevant for placing components together).
3. small in bounding box area.
4. small in bounding box max length.

All those criteria have their unique concept of "optimal", which require unique and specific approach for optimization.

Our gun is already optimal design in convex hull. It's number of on cells is log(n) which is not optimal, but this is the cost for small size (the optimal number of on cells is o(1)).

Solving the bounding box area problem, it's not so hard i suppose. All we need to do is to make the pattern "long and flat" instead of "diagonal flat". This can be done by using glider zigzag with snarks, spaceships, and some additional tricks with Herschels, or once again using the "first" design, simply adding more snarks.

On the other hand solving the optimal smallest box edge it's another story. Which obviously also will solve the area issue as well. But this is pretty tricky thing to do, because this require us to "band" somewhat the whole design to fit √logN x √logN box, which is pretty tricky.

I was also thinking returning to the previous stable technology using gliders, it's somehow feels more natural to me to bend patterns with those rather than with Herschels. But on the other hand I've a little experience with Herschels so it might be just that.

Post Reply