Two new backrakes are shown in this post. One is the smallest, and the other is the easiest to synthesize. (It can be synthesized with five gliders.) Below is a 19-cell backrake.c0b0p0 wrote:Here is the new smallest backrake (although it's not the easiest to synthesize, unfortunately).
Code: Select all
#CXRLE Pos=-63,-8
x = 60, y = 75, rule = 22da
57bo2$59bo$58bo$56b2o$56b2o54$bo2$3bo$2bo$2o$2o7$18bo$17bo$18bobo$19bo
!Code: Select all
x = 13, y = 15, rule = 22da
4bo$3b2o$2bob3o$3bobo$4bo7$9b2o2$bo7b2obo$o9bobo!
Code: Select all
x = 32, y = 45, rule = 22da
11bo2$13bo$11b2o$11b2o2bo7$19bo$18b2o$17bob3o$18bobo$19bo22$bo2$3bo$2b
o24bo$2o$2o27bo$27b2o$27b2o2bo!Code: Select all
# Creates a set of collisions between a glider and another object,
# selected by the user.
import golly as g
from glife.base import *
import math as m
from time import time
t = time()
rule("22da")
fish = pattern("o2$2bo$2o$2o2bo!")
mosquito = pattern(g.getcells(g.getselrect()))
collist = []
col2ist = []
col3ist = []
c2i = 0
def collision (i, j, p):
return fish + p[i + k] (-25 + j, 30)
def stba():
r=g.getrect()
recdd = [r[0] - 40, r[1] - 40, r[2] + 80, r[3] + 80]
g.select(recdd)
g.run(500)
g.clear(1)
g.setgen("0")
def osc():
g.setgen("0")
init = g.getcells(g.getrect())
g.run(1)
while g.getcells(g.getrect()) != init:
g.run(1)
return int(g.getgen())
k = osc()
def range():
rule("22daHistory")
g.run(k)
h = g.getrect()[3] + g.getrect()[2]
g.reset()
return h
halfper = range()
glidist = int(m.ceil((99 + (halfper * 3)) / (3. * k))) * 3 * k
def test(pat):
x = g.addlayer()
pat.display("x")
cll = g.getcells(g.getrect())
clld = cll[14:]
g.run(glidist)
clll = g.getcells(g.getrect())
cllld = clll[:-14]
g.dellayer()
return clld != cllld
def center():
cllll = g.getcells(g.getrect())
lcllll = len(cllll)
xxx = max(cllll[0:lcllll:2])
yyy = min(cllll[1:lcllll:2])
cllll[0:lcllll:2] = [x - xxx for x in cllll[0:lcllll:2]]
cllll[1:lcllll:2] = [x - yyy for x in cllll[1:lcllll:2]]
g.new("d")
g.putcells(cllll)
def centercl(cllll):
cllll = list(cllll)
lcllll = len(cllll)
xxx = max(cllll[0:lcllll:2])
yyy = min(cllll[1:lcllll:2])
cllll[0:lcllll:2] = [x - xxx for x in cllll[0:lcllll:2]]
cllll[1:lcllll:2] = [x - yyy for x in cllll[1:lcllll:2]]
return pattern(cllll)
def flip(clt):
clt = list(clt)
cltf = clt[:]
lc = len(clt)
cltf[1:lc:2] = [-x for x in clt[0:lc:2]]
cltf[0:lc:2] = [-x for x in clt[1:lc:2]]
cltf = centercl(cltf)
return cltf
def rot(clt):
clt = list(clt)
lngth = len(clt)
cltrot=[]
indx=0
while indx < lngth:
i=clt[indx]
j=clt[indx+1]
cltrot += [j,-i+j]
indx = indx + 2
cltrot = centercl(cltrot)
return cltrot
def pequals(y):
j = 0
k1 = osc()
g.setgen("0")
kf = g.getcells(g.getrect())
kff = flip(kf)
kfr1 = rot(kf)
kfr2 = rot(kfr1)
kfr3 = rot(kfr2)
kfr4 = rot(kfr3)
kfr5 = rot(kfr4)
kffr1 = rot(kff)
kffr2 = rot(kffr1)
kffr3 = rot(kffr2)
kffr4 = rot(kffr3)
kffr5 = rot(kffr4)
kf = pattern(kf)
while j < k1:
if kf == y:
return True
if kff == y:
return True
if kfr1 == y:
return True
if kffr1 == y:
return True
if kfr2 == y:
return True
if kffr2 == y:
return True
if kfr3 == y:
return True
if kffr3 == y:
return True
if kfr4 == y:
return True
if kffr4 == y:
return True
if kfr5 == y:
return True
if kffr5 == y:
return True
kf = centercl(kf[1])
kff = centercl(kff[1])
kfr1 = centercl(kfr1[1])
kfr2 = centercl(kfr2[1])
kfr3 = centercl(kfr3[1])
kfr4 = centercl(kfr4[1])
kfr5 = centercl(kfr5[1])
kffr1 = centercl(kffr1[1])
kffr2 = centercl(kffr2[1])
kffr3 = centercl(kffr3[1])
kffr4 = centercl(kffr4[1])
kffr5 = centercl(kffr5[1])
j += 1
return False
all = pattern()
for i in xrange(-k, 0):
for j in xrange(-halfper - 6, halfper + 5):
if test(collision(i,j,mosquito)):
all += collision (i, j, mosquito) (100 * i, 100 * j)
collist.append(collision(i, j, mosquito))
all.display("synthesis")
g.save("1ordsyn.rle", "rle")
c2i=0
for i in collist:
g.new("d")
i.display("d")
stba()
s=g.getrect()
if len(s) == 4:
center()
s=g.getrect()
ncl=g.getcells(s)
inlist = False
for p in col2ist:
if pequals(p):
inlist=True
break
if not inlist:
col2ist.append(pattern(ncl))
c2i+=1
g.setgen("0")
c2i=0
for i in col2ist:
g.new("d")
i.display("d")
mosquito = pattern(g.getcells(g.getrect()))
k = osc()
halfper = range()
glidist = int(m.ceil((99 + (halfper * 3)) / (3. * k))) * 3 * k
all = pattern()
for j in xrange(-k, 0):
for l in xrange(-halfper - 6, halfper + 5):
if test(collision(j,l,mosquito)):
all += collision (j, l, mosquito) (100 * j, 100 * l)
all.display("synthesis")
g.save("col" + str(c2i) + ".rle", "rle")
c2i+=1
g.show(str(time() - t))
Code: Select all
x = 40894, y = 40902, rule = 22da
29609bo$29609bo32$29641bo$29643bo$29618bo2bo$29620bo$29620b2o$29621bo
26$29631b2obo$29632b2o2$29634bo5$29651b2obo$29652b2o2$29654bo2287$
27295bo2bo$27297bo$27297b2o$27298bo13$27277bo$27276bo3$27307bo2bo$
27309bo$27309b2o$27310bo10$27291bob2o$27293b2o2$27294bo5$27270bo$
27272bo590$31106bo$31106b2o$31107bo2$31106bobobo537$26367bo$26367bo32$
26399bo$26401bo$26376bo2bo$26378bo$26378b2o$26379bo26$26389b2obo$
26390b2o2$26392bo5$26409b2obo$26410b2o2$26412bo1096$31949bob2o$31951b
2o2$31952bo9$31941bob2o$31943b2o2$31944bo$31978b2obo$31979b2o2$31981bo
11$31994bo$31993bo648$24579bo2$24581bo$24579b2o$24579b2o2bo508$24053bo
2bo$24055bo$24055b2o$24056bo13$24035bo$24034bo3$24065bo2bo$24067bo$
24067b2o$24068bo10$24049bob2o$24051b2o2$24052bo5$24028bo$24030bo501$
32827bobobo2$32830bo$32830b2o$32831bo109$22059bo$22059bo32$22091bo$
22069bo23bo$22069b2o$22070bo$22069bo2bo26$22082bo2$22083b2o$22082bob2o
5$22102bo2$22103b2o$22102bob2o901$33345b3o2$33347bo$33347b2o373$33016b
o2b2o$33019b2o$33018bo2$33020bo3$32998bobo$32998bob2o2$33000b2o17$
32967bobo$32967bob2o2$32969b2o35$32943bo2b2o$32946b2o$32945bo2$32947bo
20$32914bo2b2o$32917b2o$32916bo2$32918bo31$32885bobo$32885bob2o2$
32887b2o20$32865bobo$32865bob2o2$32867b2o8$34449b2o2bo$34450b2o$34453b
o2$34453bo175$28707bob2o$28709b2o2$28710bo9$28699bob2o$28701b2o2$
28702bo$28736b2obo$28737b2o2$28739bo11$28752bo$28751bo118$22977b2o$
22978bo$22977bo2bo$22978bobo506$36157bo$36156bo12$36168bo2bo$36170bo$
19746bo16423b2o$19746b2o16423bo$19747bo$19746bo2bo14$19727bo$19726bo2$
19758bo$19758b2o$19759bo$19758bo2bo4$36184bob2o$36186b2o2$36187bo3$
19742bo2$19742b2o16428bob2o$19742b2obo16428b2o2$36175bo4$19720bo$
19722bo826$37895bo2$37895bo$37897b2o$37895bo2b2o1452$40818bo2bo$40820b
o$40820b2o$40821bo8$40859bo2$40860bo6$24400bo$40826bo2bo$24400b2o
16426bo$24400b2obo16424b2o$40829bo8$24392bo2$24392b2o16461b2obo$24392b
2obo16460b2o$24429bo$40858bo$24430b2o$24429bob2o7$40892b2o5$24444bo$
24443bo877$32648bo$32647bo12$32659bo2bo$32661bo$32661b2o$32662bo26$
32675bob2o$32677b2o2$32678bo5$32663bob2o$32665b2o2$32666bo517$16884bo$
16884bo32$16916bo$16894bo23bo$16894b2o$16895bo$16894bo2bo26$16907bo2$
16908b2o$16907bob2o5$16927bo2$16928b2o$16927bob2o706$31331bo$31330bo
11$31343bo2$31344b2o$31343bob2o$31380bo2$31380b2o$31380b2obo9$31372bo
2$31372b2o$31372b2obo35$38508b2obo$38509b2o2$38511bo9$38528b2obo$
38529b2o2$38531bo$38495bob2o$38497b2o2$38498bo14$38515bo$38514bo4$
38489bo2$38490bo528$25857bobo$25857bo2bo$25859bo$25859b2o353$37309bo2b
o$37311bo$37311b2o$37312bo8$37350bo2$37351bo7$37317bo2bo$37319bo$
37319b2o$37320bo10$37346b2obo$37347b2o2$37349bo9$37383b2o392$25976bo2b
2o$25979b2o$25978bo2$25980bo3$25958bobo$25958bob2o2$25960b2o17$25927bo
bo$25927bob2o2$25929b2o35$25903bo2b2o$25906b2o$25905bo2$25907bo20$
25874bo2b2o$25877b2o$25876bo2$25878bo19$26762bobo$26762b2obo2$26764b2o
39$14571bo$14571b2o$14572bo$14571bo2bo14$14552bo$14551bo2$14583bo$
14583b2o$14584bo$14583bo2bo10$14567bo2$14567b2o$14567b2obo6$14545bo$
14547bo266$26475b2o$26476bo$26475bo2bo$26476bobo440$36052bo$36054bo5$
36030bo2$36030b2o$36030b2obo10$36014bo$36014b2o$36015bo$36014bo2bo3$
36048bo$36047bo13$36026bo$36026b2o$36027bo$36026bo2bo444$35530bo2$
35532bo$35530b2o$35530b2o2bo70$35491bo$35490bobo$35489b3obo$35491b2o$
35491bo58$29627bo$29626bo11$29639bo$29639b2o$29640bo$29639bo2bo26$
29655bo2$29655b2o$29655b2obo5$29643bo2$29643b2o$29643b2obo327$34999b2o
bo$35000b2o2$35002bo9$35019b2obo$35020b2o2$35022bo$34986bob2o$34988b2o
2$34989bo14$35006bo$35005bo4$34980bo2$34981bo185$18475b2o2$18475bob2o$
18476bobo363$19225bo2$19225b2o$19225b2obo9$19217bo2$19217b2o$19217b2ob
o$19254bo2$19255b2o$19254bob2o12$19269bo$19268bo462$32523b2o2$32523bob
2o$32524bobo240$33670bo2$33671b2o$33670bob2o5$33690bo2$33691b2o$33690b
ob2o26$33703bo$33703b2o$33704bo$33703bo2bo$33681bo$33683bo32$33715bo$
33715bo17$27892bo$27891bo12$27903b2obo$27904b2o2$27906bo$27940bob2o$
27942b2o2$27943bo9$27932bob2o$27934b2o2$27935bo508$34289bo$34289b2o$
34290bo$34289bo2bo9$34329bo2$34330bo6$34297bo$34297b2o$34298bo$34297bo
2bo10$34326bo2$34327b2o$34326bob2o10$34362b2o1151$10010bo$10010bo32$
10042bo$10020bo23bo$10020b2o$10021bo$10020bo2bo26$10033bo2$10034b2o$
10033bob2o5$10053bo2$10054b2o$10053bob2o522$32613bo$32615bo6$32590bob
2o$32592b2o2$32593bo10$32574bo2bo$32576bo$32576b2o$32577bo2$32609bo$
32608bo14$32586bo2bo$32588bo$32588b2o$32589bo508$31979bo2$31980b2o$
31979bob2o9$31999bo$29355bobo$29355bo2bo2641b2o$29357bo2641bob2o$
29357b2o2607bo2$31966b2o$31966b2obo15$31985bo$31984bo4$31959bo2$31960b
o446$23438bo$23437bo11$23450bo$23450b2o$23451bo$23450bo2bo26$23466bo2$
23466b2o$23466b2obo5$23454bo2$23454b2o$23454b2obo290$18936bo2b2o$
18939b2o$18938bo2$18940bo3$18918bobo$18918bob2o2$18920b2o17$18887bobo$
18887bob2o2$18889b2o35$18863bo2b2o$18866b2o$18865bo2$18867bo316$7697bo
$7697b2o$7698bo$7697bo2bo14$7678bo$7677bo2$7709bo$7709b2o$7710bo$7709b
o2bo10$7693bo2$7693b2o$7693b2obo6$7671bo$7673bo21$23832b2o$23833bo$
23832bo2bo$23833bobo66$6545bo$6545bo32$6577bo$6555bo23bo$6555b2o$6556b
o$6555bo2bo26$6568bo2$6569b2o$6568bob2o5$6588bo2$6589b2o$6588bob2o262$
5596bo$5596bo32$5628bo$5606bo23bo$5606b2o$5607bo$5606bo2bo26$5619bo2$
5620b2o$5619bob2o5$5639bo2$5640b2o$5639bob2o22$30230b2obo$30231b2o2$
30233bo5$30250b2obo$30251b2o2$30253bo26$30263bo2bo$30265bo$30265b2o$
30242bo23bo$30244bo32$30276bo$30276bo93$22037bo$22036bo12$22048b2obo$
22049b2o2$22051bo$22085bob2o$22087b2o2$22088bo9$22077bob2o$22079b2o2$
22080bo$5977bo$5976b2o$5975bob3o$5976bobo$5977bo358$22827bobo$22827b2o
bo2$22829b2o482$28100bo$28100b2o$28101bo$28100bo2bo9$28140bo2$28141bo
6$28108bo$28108b2o$28109bo$28108bo2bo10$28137bo2$28138b2o$28137bob2o
10$28173b2o256$11473b2o2$11473bob2o$11474bobo186$4024bo2$4026bo$4024b
2o$4024b2o2bo237$12351bo2$12351b2o$12351b2obo9$12343bo2$12343b2o$
12343b2obo$12380bo2$12381b2o$12380bob2o12$12395bo$12394bo118$4232bo$
4232b2o$4233bo$4232bo2bo14$4213bo$4212bo2$4244bo$4244b2o$4245bo$4244bo
2bo10$4228bo2$4228b2o$4228b2obo6$4206bo$4208bo293$3283bo$3283b2o$3284b
o$3283bo2bo14$3264bo$3263bo2$3295bo$3295b2o$3296bo$3295bo2bo10$3279bo
2$3279b2o$3279b2obo6$3257bo$3259bo192$26758bo$26760bo6$26735bob2o$
26737b2o2$26738bo10$26719bo2bo$26721bo$26721b2o$26722bo2$26754bo$
26753bo14$26731bo2bo$26733bo$26733b2o$26734bo494$2337bo$2339bo32$2371b
o$2347b3o21bo2$2349bo$2349b2o27$2361bo$2361b2obo$2364bo$2364bo5$2381bo
$2381b2obo$2384bo$2384bo279$25790bo2$25791b2o$25790bob2o9$25810bo2$
25811b2o$25810bob2o$25777bo2$25777b2o$25777b2obo15$25796bo$25795bo4$
25770bo2$25771bo841$8886bo2$8886b2o$8886b2obo9$8878bo2$8878b2o$8878b2o
bo$8915bo2$8916b2o$8915bob2o12$8930bo$8929bo59$13638bo$13638bo$13638bo
b2o$13641bo242$7937bo2$7937b2o$7937b2obo9$7929bo2$7929b2o$7929b2obo$
7966bo2$7967b2o$7966bob2o12$7981bo$7980bo189$24375b2obo$24376b2o2$
24378bo5$24395b2obo$24396b2o2$24398bo26$24408bo2bo$24410bo$24410b2o$
24387bo23bo$24389bo32$24421bo$24421bo494$24b3o2$26bo$26b2o14$5bo$6bo2$
36b3o2$38bo$38b2o11$22bo$20bob2o$21bo$22bo5$o$o154$16180bo$16179bo11$
16192bo$16192b2o$16193bo$16192bo2bo26$16208bo2$16208b2o$16208b2obo5$
16196bo2$16196b2o$16196b2obo450$11878bobo$11878bob2o2$11880b2o17$
11847bobo$11847bob2o2$11849b2o35$11823bo2b2o$11826b2o$11825bo2$11827bo
355$16638b2o$16639bo$16638bo2bo$16639bobo982$10495bo$10495bo$10495bob
2o$10498bo6$4573b2o$4574bo$4573bo2bo$4574bobo232$4680bo$4678bob2o$
4679bo$4680bo9$4672bo$4670bob2o$4671bo$4672bo$4708bo$4708b2obo$4711bo$
4711bo11$4722bo$4723bo160$20842bo$20842b2o$20843bo$20842bo2bo9$20882bo
2$20883bo6$20850bo$20850b2o$20851bo$20850bo2bo10$20879bo2$20880b2o$
20879bob2o10$20915b2o21$4819bobo$4819bo2bo$4821bo$4821b2o229$9758bo2$
9759b2o$9758bob2o816$13678bo$13677bo11$13690bo$13690b2o$13691bo$13690b
o2bo26$13706bo2$13706b2o$13706b2obo5$13694bo2$13694b2o$13694b2obo893$
13338bo$13337bo11$13350bo$13350b2o$13351bo$13350bo2bo26$13366bo2$
13366b2o$13366b2obo5$13354bo2$13354b2o$13354b2obo229$18532bo2$18533b2o
$18532bob2o9$18552bo2$18553b2o$18552bob2o$18519bo2$18519b2o$18519b2obo
15$18538bo$18537bo4$18512bo2$18513bo1072$18340bo$18340b2o$18341bo$
18340bo2bo9$18380bo2$18381bo6$18348bo$18348b2o$18349bo$18348bo2bo10$
18377bo2$18378b2o$18377bob2o10$18413b2o16$6528bo$6528b2obo$6531bo$
6531bo547$17780bo$17779b2o$17778bob3o$17779bobo$17780bo329$18000bo$
18000b2o$18001bo$18000bo2bo9$18040bo2$18041bo6$18008bo$18008b2o$18009b
o$18008bo2bo10$18037bo2$18038b2o$18037bob2o10$18073b2o763$9963bobo$
9963b2obo2$9965b2o96$10193bo$10194bo11$10205b3o2$10207bo$10207b2o27$
10223bo$10221bob2o$10222bo$10223bo5$10211bo$10209bob2o$10210bo$10211bo
94$10456b2o2$10456bob2o$10457bobo341$16030bo2$16031b2o$16030bob2o9$
16050bo2$16051b2o$16050bob2o$16017bo2$16017b2o$16017b2obo15$16036bo$
16035bo4$16010bo2$16011bo174$16436bo2$16438bo$16436b2o$16436b2o2bo726$
15690bo2$15691b2o$15690bob2o9$15710bo2$15711b2o$15710bob2o$15677bo2$
15677b2o$15677b2obo15$15696bo$15695bo4$15670bo2$15671bo862$14855b3o2$
14857bo$14857b2o10$14896b2o7$14863b3o2$14865bo$14865b2o11$14893bo$
14893b2obo$14896bo$14896bo8$14929bo2$14930bo2298$12546bo$12546b2obo$
12549bo$12549bo9$12566bo$12566b2obo$12569bo$12569bo$12534bo$12532bob2o
$12533bo$12534bo14$12551bo$12552bo5$12526b2o!