ConwayLife.com - A community for Conway's Game of Life and related cellular automata
Home  •  LifeWiki  •  Forums  •  Download Golly

"Solid" LTL Ships

For discussion of other cellular automata.

"Solid" LTL Ships

Postby Saka » September 7th, 2017, 9:09 am

Another "Collection" thread of mine :) . THis thread is for "solid" ships in LTL rules. Solid ships are ships that consists of a static core with "fire" on the edges that cause the static core to move. Most cores are donut shaped.
An example is SlowShip.rle. These can be found by changing the range of SlowShip.rle. I have made a script specialized to do just that:
#slowshipconvert.py
#A script to change the range of slowship rules
#DISCLAIMER: Drastic range changes will remove the dynamics.
#Thanks to Dean Hickerson's algorithm!
#By Saka.
from decimal import *
import golly as g
getcontext().prec = 8
#Input time
rangeto = int(g.getstring("Range to convert to?","10"))
rangetostr = str(rangeto)
#Now for calculations!
meaningoflife = Decimal((2*Decimal(rangeto)+1)**2/(2*Decimal(10)+1)**2)
newbmin = str(int(round(133*meaningoflife))) #Huh. Decimal to number to integer to string
newbmax = str(int(round(265*meaningoflife)))
newsmin = str(int(round(154*meaningoflife)))
newsmax = str(int(round(262*meaningoflife)))
newrule = "R"+rangetostr+",C0,M1,"+"S"+newsmin+".."+newsmax+","+"B"+newbmin+".."+newbmax+",NM"
g.setrule(newrule)


I have found one in range 17:
# C/798 diagonal ship
x = 42, y = 43, rule = R17,C0,M1,S428..728,B369..736,NM
20b4o$18b8o$24b3o$21b4o2bo$18b10o$17b9ob2o$16b11o2bo$15b13o2bo$14b15o$
13b16o$12b18o$7bo3b20o$6bo3b22o$5bo3b24o$4b2ob27o$2bobob29o$b18o4b13o$
2ob14o8b12o$2ob13o9b13o$2ob13o10b12o3bo$15o12b12o2bo$o2b12o12b12o2bo$o
2b12o12b12ob2o$o2b13o10b13ob2o$4b12o10b13ob2o$bo3b12o8b14obo$6b13o4b
18o$7b29obobo$8b27ob2o$9b24o3bo$10b22o3bo$11b19o4bo$12b18o$13b16o$13b
15o$11bo2b13o$12bo2b11o$13b2ob9o$14b10o$14bob6o$15b2o$16b8o$18b4o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » September 7th, 2017, 11:59 pm

A c/474 diagonal
# c/474 diagonal ship in an range-17 rule
x = 37, y = 36, rule = R17,C0,M1,S428..729,B369..737,NM
13b4o$11b4o$10b4ob4o5bo$8b14o3b2o$8b16o2b2o$7b23o$6b25o$5b27o$5b28o$4b
30o$4bob29o$3bob31o$2bo2b31o$4b32o$4b30ob2o$4b30ob2o$3b31o2bo$3b31o2bo
$3b31o$o2b31o$o2b30o$2ob30o$b2ob29o$b31o$b31obo$2b31o$3b30o$4b28o$5b
27o$6b25o$7b3ob19o$9b2ob17o$10b2o2b14o$12bo5b4ob4o$22b4o$20b4o!


Very fast one:
# c/144 orthogonal ship in an range-22 rule
x = 50, y = 50, rule = R22,C0,M1,S707..1203,B611..1217,NM
24b6o$19b14o$17bo6b11o$15bo5b16o$13bo4b20o$11b2o3b23o$10b2o2b26o$9b3ob
28o$7b4ob30o$6b37o$5b35ob3o$5b36ob2o$4b38ob2o$3b40ob2o$2b41o2bo$2b21o
3b18o2bo$b19o9b15o$b18o12b14o2bo$b17o14b13o2bo$17o16b13o$16o17b13o2bo$
16o18b13obo$15o19b13obo$15o19b13obo$15o20b15o$15o20b15o$o2b12o19b16o$o
2b12o19b16o$3b13o18b16o$bob13o17b17o$bo2b13o16b16o$4b14o14b17o$2bo2b
14o12b18o$2bo2b15o9b19o$3bo2b17o3b22o$3bo2b41o$4bo2b40o$5bo2b38o$5b2ob
37o$6b38o$7b32ob3o$7b31ob3o$8b29ob3o$9b26o2b3o$10b24o2b2o$11b21o3b2o$
13b16o5bo$14b12o6bo$16b15o$19b8o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Andrew » September 8th, 2017, 1:26 am

Very nice discoveries, but I really wish you (and muzik) would put all your LtL-related posts in the "Larger than Life" thread.
User avatar
Andrew
Moderator
 
Posts: 663
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia

Re: "Solid" LTL Ships

Postby Saka » September 8th, 2017, 1:39 am

Andrew wrote:Very nice discoveries, but I really wish you (and muzik) would put all your LtL-related posts in the "Larger than Life" thread.

The thread is pretty dead. I've made a quintuple post and I don't want a semi-automated warning about a pentadecapost. Will you put these in Golly :D ?
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » September 8th, 2017, 5:51 am

c/666 diagonal
# c/666 diagoanl ship in a range-19 rule
# Saka
x = 43, y = 43, rule = R19,C0,M1,S530..900,B460..920,NM
16b9o$14b9o2b3o$12b13o3b2o$10b17o3b2o$9b20o2b2o$8b23ob3o$7b25ob3o$6b
31o$6b32o$5b2ob31o$4b2ob33o$4bob34o$3bob36o$2bo2b13o7b17o$2bob13o9b16o
$bo2b12o11b15o$bob12o13b15o$bob11o15b14o$ob12o16b13o$ob11o17b13o$13o
17b13o$13o17b13o$13o17b13o$13o17b11obo$13o17b11obo$14o15b11obo$15o13b
12obo$b15o11b13obo$b16o9b13obo$2b16o7b13o2bo$2b36obo$3b34ob2o$4b32ob2o
$4b34o$5b33o$6b3ob27o$7b3ob25o$9b2ob23o$10b2o2b20o$11b2o3b17o$13b2o3b
13o$15b5ob8o$18b9o!

I SCREANED when I ran oscar.lua (Well actually I just gasped a bit but you get the idea)
Not good for our hexakosioihexekontahexaphobic friends...

Can anybody find a ship with range < 10?
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » September 8th, 2017, 9:49 pm

Oh wow, 2c/666 diagonal...
x = 34, y = 34, rule = R15,C0,M1,S336..570,B290..577,NM
12b8o$10b8o$8b12o3bo$7b16o2bo$6b18o2bo$5b24o$4b26o$4bob25o$3bob26o$2bo
b28o$4b28o$3b10o7b13o$3b9o9b12o$2b10o10b11o$ob9o12b11o$11o12b11o$11o
12b11o$11o12b9o$11o12b9o$11o11b9o$12o10b9obo$13o8b10o$b13o5b11obo$b29o
bo$2b27obo$3b25obo$4b23ob2o$5b24o$6b2ob19o$7b2ob17o$8b2o2b14o$10bo4b
10o$12b2o3b6o$17b3o!


WHY???

EDIT:
A really cool property of LTL rules is that 2 objects dont even have to touch each other to do cool things. This happens with solid objects because of the "ring of fire" they have:
x = 156, y = 119, rule = R22,C0,M1,S707..1203,B611..1217,NM
24b6o$19b14o$17bo6b11o$15bo5b16o$13bo4b20o$11b2o3b23o$10b2o2b26o$9b3ob
28o$7b4ob30o$6b37o$5b35ob3o$5b36ob2o$4b38ob2o$3b40ob2o$2b41o2bo$2b21o
3b18o2bo$b19o9b15o$b18o12b14o2bo$b17o14b13o2bo$17o16b13o$16o17b13o2bo$
16o18b13obo$15o19b13obo$15o19b13obo$15o20b15o$15o20b15o$o2b12o19b16o$o
2b12o19b16o$3b13o18b16o$bob13o17b17o$bo2b13o16b16o$4b14o14b17o$2bo2b
14o12b18o$2bo2b15o9b19o$3bo2b17o3b22o$3bo2b41o$4bo2b40o$5bo2b38o$5b2ob
37o$6b38o$7b32ob3o$7b31ob3o$8b29ob3o$9b26o2b3o$10b24o2b2o$11b21o3b2o$
13b16o5bo$14b12o6bo$16b15o$19b8o20$126b6o$123b14o$121b11o6bo$119b16o5b
o$118b20o4bo$117b23o3b2o$116b26o2b2o$115b28ob3o$114b30ob4o$113b37o$
112b3ob35o$112b2ob36o$111b2ob38o$110b2ob40o$110bo2b41o$109bo2b18o3b21o
$112b15o9b19o$108bo2b14o12b18o$108bo2b13o14b17o$110b13o16b17o$107bo2b
13o17b16o$107bob13o18b16o$107bob13o19b15o$107bob13o19b15o$106b15o20b
15o$106b15o20b15o$106b16o19b12o2bo$106b16o19b12o2bo$106b16o18b13o$106b
17o17b13obo$107b16o16b13o2bo$107b17o14b14o$107b18o12b14o2bo$108b19o9b
15o2bo$108b22o3b17o2bo$109b41o2bo$109b40o2bo$110b38o2bo$111b37ob2o$
112b38o$113b3ob32o$114b3ob31o$115b3ob29o$116b3o2b26o$118b2o2b24o$119b
2o3b21o$121bo5b16o$123bo6b12o$125b15o$129b8o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » October 11th, 2017, 8:26 am

c/128d, nice round number and new fastest speed record
x = 33, y = 33, rule = R16,C0,M1,S382..646,B333..656,NM
11bo9bo$9b2o11b2o$8b2o2b9o2b2o$7b2o2b11o2b2o$6b2ob15ob2o$5b2ob17ob2o$
4b2ob19ob2o$3b2ob21ob2o$2bo2b23ob2o$2bob25ob2o$bo2b25o2bo$o2b27o2bo$o
2b28o$2b29o$2b29o$2b29o$2b29o$2b29o$2b29o$2b29o$o2b28o$bo2b26o2bo$bo2b
25o2bo$2b2ob24ob2o$4bob22ob2o$4b2ob20ob2o$5b2ob18ob2o$6b2ob16ob2o$7b2o
b14ob2o$9bo2b10o3bo$9bo3b7o3b2o$10b2o10bo$12bo7b2o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » October 14th, 2017, 9:19 pm

I finally found something
c/142d
x = 29, y = 28, rule = R13,C0,M1,S256..433,B222..440,NM
15b5o$8bo3b10o$7bo2b13o$5b2ob16o$4b2ob18o$3b22o$2b22obo$2b23obo$b25o$b
11o5b9obo$b10o7b9o$10o9b8o$10o9b10o$10o9b10o$ob8o9b10o$2b8o9b10o$2b9o
7b11o$bob9o5b11o$3b25o$2bob23o$5b22o$3bob21o$4b19obo$5b17obo$6b14o2bo$
7b11o$8b9o2bo$10b7o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » December 10th, 2017, 6:43 am

yay more
2c/468d
x = 34, y = 35, rule = R15,C0,M1,S336..571,B290..577,NM
15b2o$11b10o$9b10o$8b14o2bo$7b17ob2o$6b19ob2o$5b24o$4b26o$4bob25o$3bob
27o$2bob29o$4b11o5b13o$bob10o8b13o$3b9o10b12o$2b9o12b11o$ob9o12b11o$
11o13b10o$10o14b10o$11o13b8obo$11o12b9obo$11o12b9obo$12o10b10o$13o8b
10obo$b13o6b11obo$b29obo$2b27o2bo$3b26obo$4b26o$5b24o$6b2ob20o$7b2ob
18o$9bo2b15o$10bo3b11o$12b2o3b7o$15b6o!


Weehoo a 2c/1122o
x = 77, y = 77, rule = R32,C0,M1,S1475..2510,B1274..2539,NM
38b5o$35b11o$33b14o$31bo7b10o$45b5o$39b5o4b3o$36b12o2b2o$34b16o2bo$33b
19o$31b22o$30b19ob5o$29b21o2b4o$28b23o3b2o$27b25o3b2o$26b26o$25b28o$
24b30o$23b32o$22b33o$21b35o$13bo6b37o$12b2o5b39o$11b2o4b42o$10b2o4b44o
$7bob3o3b46o$6bob3o2b49o$5b2ob2o2b51o$4b2ob3ob53o$3b3ob2ob26o5b24o$3b
2ob28o9b23o$2b3ob27o11b23o$b31o13b23o$b3ob26o15b22o$b3ob25o17b22o5bo$
4ob24o19b22o4bo$3o2b24o19b22o4b2o$3o2b23o21b22o3b2o$3o2b23o21b22o3b2o$
3o2b23o21b22o3b3o$3o3b22o21b23o2b3o$b2o3b22o21b23o2b3o$b2o3b22o21b23o
2b3o$b2o4b22o19b24o2b3o$2bo4b22o19b24ob4o$2bo5b22o17b25ob3o$9b22o15b
26ob3o$9b23o13b31o$10b23o11b27ob3o$11b23o9b28ob2o$12b24o5b29ob3o$13b
53ob3ob2o$14b51ob3ob2o$15b48o3b3obo$16b46o3b3obo$17b44o4b2o$18b41o5b3o
$19b39o5b3o$20b37o6bo$21b35o$22b33o$23b31o$23b30o$24b28o$20bo4b26o$20b
2o4b24o$21b2o3b23o$21b4o2b21o$22b5ob19o$24b21o$25b19o$24bo2b15o$25b2o
2b11o$26b4o3b3o$27b6o$28b11o5bo$30b14o$32b9o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » December 11th, 2017, 4:18 am

HORRAY!
RANGE 8!
c/48d!
x = 19, y = 19, rule = R8,C0,M1,S101..172,B87..174,NM
7bo3b2o$5b9o$3b12o$2b14o$2b15o$b17o$b17o$17obo$b16o$b8ob8o$b16o$17obo$
18o$b17o$2b15o$3b13o$4b11o$5b2o2bo2b2o$7bo3bo!

And it kinda looks like the millenium falcon but really just barely!

My favorite phase:
x = 35, y = 35, rule = R8,C0,M1,S101..172,B87..174,NM
15b5o$12b11o$10b15o$9b17o$8b19o$6b9o5b8o$5b8o9b7o$5b6o13b6o$4b6o15b6o$
3b6o16b7o$2b6o18b7o$2b5o20b6o$b6o21b6o$b5o23b5o$b5o23b5o$5o24b6o$5o25b
5o$5o25b5o$5o25b5o$5o25b5o$b5o23b6o$b5o23b5o$b6o22b5o$2b5o21b6o$2b6o
19b6o$3b7o16b6o$4b7o14b7o$5b7o12b7o$6b7o10b7o$7b9o4b9o$8b20o$9b18o$10b
15o$12b12o$15b6o!


It isn't fully solid though, it blows up, but it has a core and the rule is from the original R10 rule, so I'll count it

I wrote a tiny program (Well, except the oscar part) and it found this neat R10 c/39o
x = 23, y = 24, rule = R10,C0,M1,S155..260,B133..265,NM
10b3o$7b9o$5b2ob7obo$4b12obo$3bob14o$2bob16o$2b19o$bob8ob8obo$b8o5b8o$
8o7b6obo$7o9b7o$7o9b7o$7o9b7o$7o9b7o$8o7b6obo$b8o5b8o$bob8ob8obo$2b19o
$2bob16o$3bob14o$4b12obo$5b2ob7obo$7b9o$10b3o!


Oh my god my script is awesome 3c/563o
# 3c/563 orthogonal ship in a range-11 rule
# Saka
x = 26, y = 25, rule = R11,C0,M1,S185..314,B160..318,NM
9bob3o$11b3o$8b7o$7b10o$5bob11o$4bob13obo$5b15obo$3b18o$2b21o$o2b8o3b
8o2bo$2b8o5b9o$b8o7b9o$8o8b10o$b8o7b9o$2b8o5b9o$o2b8o3b8o2bo$2b21o$3b
18o$5b15obo$4bob13obo$5bob11o$7b10o$8b7o$11b3o$9bob3o!


c/34d in Range 7!!
x = 15, y = 15, rule = R7,C0,M1,S79..134,B68..135,NM
4b5obo$5b7o$3b8o$2b10obo$ob11o$15o$6o3b5o$6o3b6o$6o3b5o$b14o$14o$bob9o
$4b7o$3bob6o$5bobobo!


My script is awesome! (I'll release it in a bit)

EDIT:
Funny 7c/27o ship I came accross in slowship converted into Range 6. Not solid though.
x = 14, y = 17, rule = R6,C0,M1,S59..100,B51..102,NM
5b3o$4b6o$6b2o$5b4o$4b6o$3b8o$2b10o$6ob5obo$5o3b6o$6ob5obo$2b10o$3b8o$
4b6o$5b4o$6b2o$4b6o$5b3o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby Saka » December 11th, 2017, 11:06 pm

I improved the script and here it is!
# Solid.py
# Makes soups and runs oscar until a ship is found
# Seemingly stupid but actually very useful and fast
# Mainly used for searching "Solid" ships in LTL since soups of the right size
# produce only 1 object and separation is not needed so oscar can be run.
# Best fit for solid LTL rules that have lower period oscs that stabilize quicker but can also be used for larger ranges.
# Beeps when a ship is found.
# By Saka with oscar.py code from Andrew Trevorrow.

import golly as g

if len(g.getselrect()) == 0:
    g.exit("No selection!")
else:
    selection = g.getselrect()
   
g.new("Solid")
g.select(selection)
g.fitsel()
result = "Soup"
#maxGen = int(g.getstring("Maximum gens (To avoid expanding soups)")) # Maximum gens and population to avoid expanding soups
maxPop = (selection[2]*selection[3])*10 #This is much, much better
n = -1

while result != "S": #Old and not used anymore but whatever.
    #g.setgen('0')
    n += 1
    if n % 100==0:
        g.show(str(n)+" soups searched")
        g.update()
    g.reset()
    g.randfill(50)
    # The entire code of oscar.py :)
    # Oscar is an OSCillation AnalyzeR for use with Golly.
    # Author: Andrew Trevorrow (andrew@trevorrow.com), March 2006.

    from glife import rect, pattern
    from time import time

    # --------------------------------------------------------------------

    # initialize lists
    hashlist = []        # for pattern hash values
    genlist = []         # corresponding generation counts
    poplist = []         # corresponding population counts
    boxlist = []         # corresponding bounding boxes

    # --------------------------------------------------------------------

    def show_spaceship_speed(period, deltax, deltay):
        # we found a moving oscillator
        if (deltax == deltay) or (deltax == 0) or (deltay == 0):
            speed = ""
            if (deltax == 0) or (deltay == 0):
                # orthogonal spaceship
                if (deltax > 1) or (deltay > 1):
                    speed += str(deltax + deltay)
            else:
                # diagonal spaceship (deltax == deltay)
                if deltax > 1:
                    speed += str(deltax)
            if period == 1:
                g.show("S")
                g.exit("Found ship with speed " + speed + "c"+" after "+str(n)+" soups.")
            else:
                g.show("S")
                g.exit("Found ship with speed " + speed + "c/" +str(period)+" after "+str(n)+" soups.")
        else:
            # deltax != deltay and both > 0
            speed = str(deltay) + "," + str(deltax)
            if period == 1:
                g.show("S")
                g.exit("Found knightship with speed " + speed + "c"+" after "+str(n)+" soups.")
            else:
                g.show("S")
                g.exit("Found knightship with speed " + speed + "c/" + str(period)+" after "+str(n)+" soups.")

    # --------------------------------------------------------------------

    def oscillating():
        # return True if the pattern is empty, stable or oscillating

        # first get current pattern's bounding box
        prect = g.getrect()
        pbox = rect(prect)
        if pbox.empty:
            #g.show("The pattern is empty.")
            return True

        # get current pattern and create hash of "normalized" version -- ie. shift
        # its top left corner to 0,0 -- so we can detect spaceships and knightships

        h = g.hash(prect)

        # check if outer-totalistic rule has B0 but not S8
        rule = g.getrule().split(":")[0]
        hasB0notS8 = rule.startswith("B0") and (rule.find("/") > 1) and not rule.endswith("8")

        # determine where to insert h into hashlist
        pos = 0
        listlen = len(hashlist)
        while pos < listlen:
            if h > hashlist[pos]:
                pos += 1
            elif h < hashlist[pos]:
                # shorten lists and append info below
                del hashlist[pos : listlen]
                del genlist[pos : listlen]
                del poplist[pos : listlen]
                del boxlist[pos : listlen]
                break
            else:
                # h == hashlist[pos] so pattern is probably oscillating, but just in
                # case this is a hash collision we also compare pop count and box size
                if (int(g.getpop()) == poplist[pos]) and \
                   (pbox.wd == boxlist[pos].wd) and \
                   (pbox.ht == boxlist[pos].ht):
                    period = int(g.getgen()) - genlist[pos]

                    if hasB0notS8 and (period % 2 > 0) and (pbox == boxlist[pos]):
                        # ignore this hash value because B0-and-not-S8 rules are
                        # emulated by using different rules for odd and even gens,
                        # so it's possible to have identical patterns at gen G and
                        # gen G+p if p is odd
                        return False

                    if pbox == boxlist[pos]:
                        # pattern hasn't moved
                        if period == 1:
                            pass
                            #g.show("SL")
                        else:
                            pass
                            #g.show("OSC")
                    else:
                        deltax = abs(boxlist[pos].x - pbox.x)
                        deltay = abs(boxlist[pos].y - pbox.y)
                        show_spaceship_speed(period, deltax, deltay)
                    return True
                else:
                    # look at next matching hash value or insert if no more
                    pos += 1

        # store hash/gen/pop/box info at same position in various lists
        hashlist.insert(pos, h)
        genlist.insert(pos, int(g.getgen()))
        poplist.insert(pos, int(g.getpop()))
        boxlist.insert(pos, pbox)

        return False

    # --------------------------------------------------------------------

    def fit_if_not_visible():
        # fit pattern in viewport if not empty and not completely visible
        r = rect(g.getrect())
        if (not r.empty) and (not r.visible()): g.fit()

    # --------------------------------------------------------------------

    #g.show("Checking for oscillation... (hit escape to abort)")

    oldsecs = time()
    while not oscillating():
        g.run(1)
        newsecs = time()
        #if newsecs - oldsecs >= 1.0:     # show pattern every second
            #oldsecs = newsecs
            #fit_if_not_visible()
            #g.update()
        if int(g.getpop()) > maxPop: #If not: Use int(g.getgen()) > maxGen
            break


Mostly just oscar.py :P
It has found quite a few ships, not released yet, still in my "Solid" folder.
How to use:
1. Use slowshipconvert.py in the top post (here) to convert to the desired range.
2. (Optional) Tweak the limits a bit, +-5 or something.
3. Select an area to search. Make sure that a 50% fill of the area produces only 1 "donut" when you fill it or else oscar will get stuck if it finds a osc+ship or ship+ship. Expanding soups will be skipped using a "smart maxPop" I made.
4. Still selecting the area, run solid.py
5. Wait until a ship is found (It will beep because it uses g.exit)

TODO:
-Display approximate soups/sec
-After a set amount of failed soups, adjust the rule and start over

EDIT:
VERY FAST c/10o with a very thin core found with the script
x = 28, y = 28, rule = R10,C0,M1,S154..256,B133..269,NM
12b3o$11b6o$10bob3o$11b5o$11b6o$10b7o$9b9o$9b10o$8b12o$7b14o$5b18o2bo$
bo2b8o3b10obo$11o5b11o$11o6b11o$10o7b11o$11o6b11o$12o4b9obo$bo2b9ob9o$
6b16o$8b12o$9b10o$9b9o$10b8o$11b6o$11b5o$11b5o$11b6o$12b4o!


Turns out the original slow ship rule has a 2c/542o!
x = 24, y = 25, rule = R10,C0,M1,S154..262,B133..265,NM
10b6o$11b7o$6bo2b10o$5bob12o$4bob14o$3b18o$2b18o$b10o3b7o$9o6b7o$8o8b
6obo$7o10b7o$7o10b7o$7o10b7o$7o10b7o$ob6o9b7o$2b6o8b8o$3b6o6b9o$3b8o2b
10o$4b18o$3b16obo$4b14obo$5b11o2bo$6b9o$7b5o3bo$9b4o!
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X

Re: "Solid" LTL Ships

Postby AforAmpere » December 13th, 2017, 6:18 pm

Could you make a version of this that repeats and writes to a file somewhere?
Things to work on:
- Find a (7,1)c/8 ship in a Non-totalistic rule (someone please search the rules)
- Find a C/10 in JustFriends
- Find a C/10 in Day and Night
AforAmpere
 
Posts: 611
Joined: July 1st, 2016, 3:58 pm

Re: "Solid" LTL Ships

Postby Saka » December 13th, 2017, 10:44 pm

AforAmpere wrote:Could you make a version of this that repeats and writes to a file somewhere?

I add 2 lines of comments to each file stating the ship of the speed and who found it and I dont know how to do that with a script. Would be cool tho!

I add them because the file names are R(range)-(period)o/d (slope listed before period if oblique)

I dont know why I settled on that but it would be a pain to change all the names.
Proud owner and founder of Sakagolue
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!

(Check gen 2)
User avatar
Saka
 
Posts: 2481
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X


Return to Other Cellular Automata

Who is online

Users browsing this forum: No registered users and 5 guests