Nice result! Considering the rarity of 3c/4 ships, (3,1)c/4 would be pretty incredible.A for awesome wrote:8-cell (2,1)c/4 (EDIT: rule now reduced):I also had what seemed to be a promising lead on a (3,1)c/4, but it didn't prove tractable.Code: Select all
x = 7, y = 7, rule = B2-ik3cenqr4jknw/S2c3q4r 2bo$o$o4bo$bo$o5bo2$4bo!
This inspired my to hook up rulesrc.py to my small ships search script and I ran a search overnight with the b-heptomino restricted to rules matching the evolution for 4 generations. All I can say is that the results reinforce my belief that there are a lot of small ships in the 2-state isotropic CA rule-space. A LOT.Saka wrote:I've modified rulesrc to only return b-ships if they have an odd period and the results are GREAT (All oblique so far!!)
Edited to include examples:
Highest period ships of each class:
ortho 12c/1010
Code: Select all
x = 3, y = 4, rule = B2n3-cenq4cw5acy6in78/S2-i3-aek4-ajktw5cijn6cin8
b2o$2o$b2o$2bo!
Code: Select all
x = 5, y = 3, rule = B2in3-cenq4-acjnq5acek6i/S2aek3-aek4ceinrt5acjkr6aei7e
o$3b2o$2b2o!
Code: Select all
x = 3, y = 4, rule = B2k3-ceny4-aknrt5cery6ain7e/S2-i3-acky4c5-aeny6e7e
3o$2bo$2bo$bo!
In total, there were 10,560 results. Of those, there are 4634 orthogonal ships, 4543 diagonal ships and 1250 oblique ships, for a total of 10,427 unique ships. There's a chance this includes some of the ones posted above, but I think it's unlikely.
I've attached the results in an archive with three files for orthogonal, diagonal and oblique ships. All files have one ship per line in my custom format and are sorted first by period, and then displacement. The ships are stored in a phase with minimum population, but they all have one phase which is a B. The format is:
Code: Select all
min pop, min isotropic rule, x displacement, y displacement, period, rle string
Code: Select all
# display_ship.py
# This script will take a string representing a ship with some additional metadata,
# and display it in the current layer
# It first checks the clipboard for a valid string and then requests input if necessary
# There is minimal error checking
# ship format: ['pop', 'rule', 'dx', 'dy', 'period', 'rle']
import golly as g
def parseshipstr(shipstr):
if not shipstr[0] in '123456789':
return
ship = shipstr.split(', ')
if not len(ship) == 6:
return
return ship
shipstr = g.getclipstr()
ship = parseshipstr(shipstr)
if not ship:
shipstr = g.getstring('Enter ship string:')
ship = parseshipstr(shipstr)
if not ship:
g.exit('Invalid ship string: ' + shipstr)
rulestr = ship[1].strip()
shiprle = ship[5].strip()
g.new('')
g.setrule(rulestr)
g.putcells(g.parse(shiprle))
g.fit()