Script request thread

For scripts to aid with computation or simulation in cellular automata.
User avatar
Andrew
Moderator
Posts: 769
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Script request thread

Post by Andrew » October 19th, 2019, 7:46 pm

muzik wrote:
October 19th, 2019, 9:52 am
A script to generate multistate 1D CA that wolframalpha can simulate.
Have you tried Scripts/Lua/1D.lua in Golly 3.3? It supports totalistic rules of the form CcKkRr where c is a code number from 0 to k^((2r+1)k-2r)-1, k is the number of states (2 to 4), and r is the range (1 to 4). Hit alt-R to generate a random pattern with a random rule. Hit H for more info.

muzik
Posts: 3775
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Script request thread

Post by muzik » December 28th, 2019, 10:56 am

A script that can turn mirek's weighted life notation into hensel notation where possible would be useful
Bored of using the Moore neighbourhood for everything? Introducing the Range-2 von Neumann isotropic non-totalistic rulespace!

wildmyron
Posts: 1371
Joined: August 9th, 2013, 12:45 am

Re: Script request thread

Post by wildmyron » December 29th, 2019, 8:18 am

muzik wrote:
December 28th, 2019, 10:56 am
A script that can turn mirek's weighted life notation into hensel notation where possible would be useful
This script by EricG does what you want except for using the Life32 version of Hensel notation:
https://conwaylife.com/forums/viewtopic ... 6816#p6816

It would be a simple matter to modify it for the alternate version adopted as the standard INT notation (swap r and y, replace v with n).
The latest version of the 5S Project contains over 226,000 spaceships. There is also a GitHub mirror of the collection. Tabulated pages up to period 160 (out of date) are available on the LifeWiki.

User avatar
Kazyan
Posts: 954
Joined: February 6th, 2014, 11:02 pm

Re: Script request thread

Post by Kazyan » January 4th, 2020, 10:54 pm

Request: a script that retrieves the apgcodes of all Catagolue objects that 1) are half-bakery derivatives, such that all state-2 cells below are dead and all state-1 cells below are alive, and 2) have at least one C1 soup.

Code: Select all

x = 7, y = 7, rule = LifeHistory
4.2AB$2.BA2BA$.2BABAB$.2ABAB$A2BAB$ABAB$BAB!
Tanner Jacobi

chris_c
Posts: 940
Joined: June 28th, 2014, 7:15 am

Re: Script request thread

Post by chris_c » January 5th, 2020, 7:12 am

Kazyan wrote:
January 4th, 2020, 10:54 pm
Request: a script that retrieves the apgcodes of all Catagolue objects that 1) are half-bakery derivatives, such that all state-2 cells below are dead and all state-1 cells below are alive, and 2) have at least one C1 soup.

Code: Select all

x = 7, y = 7, rule = LifeHistory
4.2AB$2.BA2BA$.2BABAB$.2ABAB$A2BAB$ABAB$BAB!
Codeholics old census-matcher does the trick. You need to put the live cells and the dead cells as separate RLE in the target list with the same cell as the origin. Like this:

Code: Select all

#!/usr/bin/python
import csv
import os.path
import re
from urllib2 import urlopen

TARGETS = [
    ('4b2o$3bo2bo$3bobo$b2obo$o2bo$obo$bo!', '6bo$2bob2o$b2obobo$3bobo$b2obo$bobo$obo!')
]

TRANSFORMATIONS = [
    [1, 0, 0, 1],
    [0, -1, 1, 0],
    [-1, 0, 0, -1],
    [0, 1, -1, 0],
    [-1, 0, 0, 1],
    [0, 1, 1, 0],
    [1, 0, 0, -1],
    [0, -1, -1, 0],
]

def decode_rle(encoded):
    x, y = 0, 0
    pos = 0
    cells = set()
    while pos < len(encoded):
        prev = pos
        while 48 <= ord(encoded[pos]) < 58:
            pos += 1

        n = int(encoded[prev:pos]) if pos > prev else 1
        ch = encoded[pos]
        if ch == '$':
            y += n
            x = 0
        elif ch == 'b':
            x += n
        elif ch == 'o':
            for i in range(0, n):
                cells.add((x, y))
                x += 1

        pos += 1

    return cells

def decode_wechsler(encoded):
    _, encoded = encoded.split('_', 1)

    cells = set()
    x, y = 0, 0
    pos = 0
    while pos < len(encoded):
        ch = encoded[pos]
        if ch == 'w':
            x += 2
        elif ch == 'x':
            x += 3
        elif ch == 'y':
            pos += 1
            x += 4 + int(encoded[pos], 36)
        elif ch == 'z':
            x = 0
            y += 5
        else:
            value = int(ch, 36)
            for n in range(0, 5):
                if value & (1 << n):
                    cells.add((x, y+n))
            x += 1

        pos += 1

    return cells

def match_pattern(pattern, wanted, unwanted):
    for pivot in wanted:
        break
    if not pivot:
        return None

    for x, y in pattern:
        failed = False

        for i, j in wanted:
            if (x+i-pivot[0], y+j-pivot[1]) not in pattern:
                failed = True
                break

        if failed:
            continue

        for i, j in unwanted:
            if (x+i-pivot[0], y+j-pivot[1]) in pattern:
                failed = True
                break

        if failed:
            continue

        return True

    return False

def transform_pattern(pattern, dx, dy, dxx = 1, dxy = 0, dyx = 0, dyy = 1):
    cells = set()
    for x, y in pattern:
        cells.add((x*dxx + y*dxy + dx, x*dyx + y*dyy + dy))
    return cells

def get_patterns():
    if not os.path.exists('census.txt'):
        remote = urlopen('http://catagolue.appspot.com/textcensus/b3s23/C1')
        census = open('census.txt', 'w')
        census.write(remote.read())
        census.close()

    census = open('census.txt', 'r')
    patterns = []
    for row in csv.reader(census):
        if row[0] == 'apgcode':
            continue
        patterns.append(row)
    census.close()
    return patterns

targets = []
for t in TARGETS:
    targets.append((decode_rle(t[0]), decode_rle(t[1])))

for pattern, freq in get_patterns():
    if pattern[:2] != 'xs':
        continue

    decoded = decode_wechsler(pattern)
    for t in TRANSFORMATIONS:
        p = transform_pattern(decoded, 0, 0, *t)
        for target in targets:
            if match_pattern(p, *target):
                print(pattern + " " + freq)
                break
        else:
            continue
        break
The results are:

Code: Select all

xs14_g88m952z121 283395935015
xs18_g88m952sgz121 89634
xs18_xo4k871z69521 31366
xs20_3iabgzw125aic 5527
xs20_g88m952z1254ko 3355
xs20_354k8gzx122dik8 2258
xs20_0g8ka96z1qa9o 1541
xs20_39m88gzx125aic 188
xs20_69ak8gzx1qa96 159
xs20_69ak8gzx122dic 114
xs21_4a9m88gzcia521 300064
xs21_69ak8gzcie1221 70471
xs21_354m88gzcia521 68359
xs21_255m88gzcia521 65022
xs21_39eg88gzcia521 27169
xs21_69ak8gzx122dik8 14708
xs21_39eg8gzx122dik8 2574
xs21_69ak8gzx1221eg8gzy51 1162
xs21_69ak8gzx122dkk8 725
xs21_69ak8g0s252zx1221 711
xs21_8ehbgzw122dik8 93
xs21_69ak8g0s246zx1221 25
xs21_69ak8gzx1221eg8o 22
xs21_259m88gzy01252ak8 7
xs21_065la4oz4a9611 2
xs21_08ehe8gzcia521 1
xs21_0cahe8gzcia521 1
xs22_699m88gzcia521 92862
xs22_069ak8gz8kie1221 14162
xs22_4aicgn98czx1243 5656
xs22_259m88gzy01252ako 5592
xs22_259eg88m952zy0121 4450
xs22_0g8ka960uh3z1221 2523
xs22_wg8kic0fhoz2543 2169
xs22_259eg8gzy0122dik8 823
xs22_0354kmzo4kb421z01 581
xs22_xg84o0uh3z4a9611 581
xs22_69ak8g0s2sgzx1221 298
xs22_0g8ka960uicz1221 283
xs22_4a9e0o4k8zw69521 216
xs22_wg8kic0f96z2543 128
xs22_69ak8gzx1221ege2 92
xs22_wg8kid1egoz2543 84
xs22_69ak8g0s453zx1221 67
xs22_y0g88m952zg0s4521z11 49
xs22_69ak8gzx122dkic 39
xs22_4aicgg0si52zx1243 21
xs22_4aicggc8a52zx1243 13
xs22_69ak8g0s253zx1221 11
xs22_69ak8g0s256zx1221 11
xs22_259ak8gzy0122dik8 9
xs22_69ak8gzx1221eg8ozy51 9
xs22_08ehabgzcia521 4
xs22_69ak8gzx122d4k8gzy51 4
xs22_y0g88m952zg8k4521z11 4
xs22_g88m952sga6z121 3
xs22_xg84q23123z4a9611 3
xs22_xo4kb2ak8z69521 2
xs22_69ak8gzx1221eg84c 1
xs22_cik8gwrdzx34521 1
xs23_699e0o4k8zw69521 17412
xs23_4aicgg0si96zx1243 1948
xs23_4aicggca952zx1243 1418
xs23_4aicgn9aczx1243 316
xs23_y0g88m952zo4ie121z01 166
xs23_69ak8g0s2qkzx1221 148
xs23_31eowg8kiczx12543 130
xs23_y2ggm96z0g8ka96z1221 54
xs23_69ak8g0s2552zx1221 48
xs23_69ak8gzx122hu066 40
xs23_4aicgg0si53zx1243 28
xs23_69ak8g2u066zx1221 26
xs23_4aicggc8a53zx1243 24
xs23_69ak8gzx1221egma 23
xs23_69ak8g2u0oozx1221 20
xs23_69ak8gzx122hu0oo 13
xs23_259m88gzciie121 9
xs23_y3oe13zg88m9521z121 8
xs23_4acgf9gzcia521 7
xs23_xg84q23ck8z4a9611 5
xs23_0g8ka96zhaq54cz01 3
xs23_cik8gwo8a52zx34521 3
xs23_69ak8gzxhaa9ozw121 2
xs23_69ak8gzxhaq54czy01 2
xs23_05b88czg88m952z121 1
xs23_0g8ka96zhaa9oz23 1
xs23_252s0g8gzw110122dik8 1
xs23_259m88hf84czy0121 1
xs23_wg8ka96z0haa9oz121 1
xs23_wg8kic0fh8oz2543 1
xs23_xg84o0uh23z4a9611 1
xs24_0354kl3zo4kb421z01 6808
xs24_j1u0o48gz11x1169a4 3636
xs24_069ak8gz3phe1221 1331
xs24_6a897o4k8zw69521 1057
xs24_0mligz0h8ka96z1221 32
xs24_0cilmz0g8ka96z1221 15
xs24_09fgbbgzcia521 8
xs24_69ak8gzx122hu0ok8 8
xs24_g88m952z12lkk8z032 7
xs24_cik8gwo4a96zx34521 6
xs24_y3o4a53zg88m9521z121 6
xs24_0g8ka96zhaahe2z011 5
xs24_69ak8gzx1221egma4 5
xs24_wg8kid1ege2z2543 5
xs24_35a88czg88m952z121 4
xs24_69ak8gzx1221ege13 4
xs24_g88m952zpid4ko 4
xs24_wg8ka96z0haa9oz321 4
xs24_0g8ka96z1221eh952 3
xs24_25b88czg88m952z121 3
xs24_3pmxg84ozw34a9611 3
xs24_cik8gwo4a53zx34521 3
xs24_352s0g8gzw110122dik8 2
xs24_652s0g8gzw110122dik8 2
xs24_69ak8g0s2pmzx1221 2
xs24_69ak8gzx1qa9ozw321 2
xs24_69ak8gzx1qa9ozy3123 2
xs24_xg84q23ckoz4a9611 2
xs24_y2gil96z0g8ka96z1221 2
xs24_y3o4a96zg88m9521z121 2
xs24_0312jai3z8kid221 1
xs24_069ak8gzgs2uh221 1
xs24_08o69ak8gzmq1x1221 1
xs24_0dbgf9gzcia521 1
xs24_0g8ka96zha616a4z11 1
xs24_178fh8gzy0122dik8 1
xs24_32arwg8kiczx12543 1
xs24_69ak8g0s2596zx1221 1
xs24_69ak8gzca61ui1 1
xs24_69ak8gzmkkd221z1 1
xs24_69ak8gzx122diczy4113 1
xs24_69ak8gzx122hu06a4 1
xs24_69ak8gzxhaa9ozw123 1
xs24_69ak8gzxhaq54czx11 1
xs24_cik8gwo8b52zx34521 1
xs24_o4p7o48gz01x1169a4 1
xs24_wg8ka96z01qa9oz321 1
xs24_wg8ka96z0haa9oz123 1
xs25_0g8ka96z122dkk871 1112
xs25_o4q23zg99m952z121 636
xs25_69ak8g0s2qrzx1221 583
xs25_xg8ka96zg89qa9oz11 76
xs25_x6a88a52zg88m952z121 63
xs25_25a88a6zg88m952z121 55
xs25_651u08k4ozw11x12596 54
xs25_0g88m952zo9a98gzx321 44
xs25_y1g8ka96zmmge1221z1 22
xs25_0354mk46zo4kb421z01 20
xs25_0j1u0o48gz121x1169a4 14
xs25_06a88a52zg88m952z121 11
xs25_32q4oxo4k8zx1169521 10
xs25_69ak8gzx1qa98gzy3343 9
xs25_0g8ka96zhaalkcz11 8
xs25_628c97o4k8zx69521 7
xs25_69ak8gzx1221ego8a6 6
xs25_02llicz69ak8gzx1221 4
xs25_0g8ka96zhaal4cz121 4
xs25_4aicggdb871zx1243 4
xs25_69ak8gzx1221egm96 4
xs25_8k4owokk871zw12596 4
xs25_31e8gzxijcia4zw3421 3
xs25_0oe13zwh9licz2543 2
xs25_25a88gzcil9hzx3452 2
xs25_69ak8gz0g89aq1z343 2
xs25_69ak8gz62sjaq1 2
xs25_69ak8gzx1221egm93 2
xs25_69ak8gzxhaal4czx121 2
xs25_05b88a6zg88m952z121 1
xs25_069ak8gzwg89aq1z2521 1
xs25_0g8ka96zhaq54koz01 1
xs25_0mljgz0h8ka96z1221 1
xs25_259m88ge93zwc4521 1
xs25_25a897o4k8zx69521 1
xs25_35a4oxo4k8zx1169521 1
xs25_39s0g8gz3210122dik8 1
xs25_39u0o48gz32x1169a4 1
xs25_69ak8gzcie1mq1 1
xs25_69ak8gzwo9aa9ozx23 1
xs25_69ak8gzx1aq1e8zx321 1
xs25_69ak8gzxhaa96zw343 1
xs25_69ak8gzxhaa9ozw343 1
xs25_8k4r2q48gzw1x1169a4 1
xs25_ca2s0g88m952zx12521 1
xs25_wg8ka96z0haa9oz343 1
xs25_x5b88a6zg88m952z121 1
xs25_xg84q2ria4z4a9611 1
xs25_y0g88m952zmkie121z1 1
xs25_y0gj1u0oozo4kb421z01 1
xs25_y4o4871zwg8kid11z2543 1
xs26_39u08k4oz321x12596 37
xs26_35a88a6zg88m952z121 14
xs26_69ak8gzciu1qq1 14
xs26_069baa4zg88m952z121 10
xs26_6t1u0o48gzw1x1169a4 8
xs26_x69ak8gzxok4d221z253 7
xs26_x6a88a53zg88m952z121 7
xs26_69ak8gzciu1ui1 6
xs26_gs2llmzo4kb421z01 6
xs26_mkhf0cik8gz1y33452 5
xs26_06a88a53zg88m952z121 4
xs26_0j1u0o48gz321x1169a4 4
xs26_wc9b871zg88m952z121 4
xs26_wdrz3ia9m952z0121 4
xs26_04aab96zg88m952z121 3
xs26_8k4o798c48czw12596 3
xs26_069a4ozcil9hzx3452 2
xs26_0g8ka96z1221ehp56 2
xs26_35a88gzcil9hzx3452 2
xs26_35a897o4k8zx69521 2
xs26_ra2s0g8gzw110122dik8 2
xs26_0354mg6qzo4kb421z01 1
xs26_064lb8jdzcia521 1
xs26_069ak8gzwg89aq1z2543 1
xs26_06a88b52zg88m952z121 1
xs26_178b9czg88m952z121 1
xs26_31eozw12ia4oz04a9611 1
xs26_356o8zy0h9liczw2543 1
xs26_6952s0g8gzx110122dik8 1
xs26_69a4ozy0h9liczw2543 1
xs26_69ak8gzciehaq1zw1 1
xs26_69ak8gzx1221ego8a52 1
xs26_69ak8gzx1221egozy6356 1
xs26_69ak8gzx122d4kozy6352 1
xs26_69ak8gzx12ehik8zy4123 1
xs26_69ak8gzx12ehu06a4 1
xs26_69icgcik8gzx23x3452 1
xs26_8e1t60g8kiczx12543 1
xs26_8e1u0o48gzw23w1169a4 1
xs26_x69baa4zg88m952z121 1
xs26_xi5m88m952z65110121 1
xs26_y2mkk871z0g8ka96z1221 1
xs27_y0ml1u0oozo4kb421z01 174
xs27_651u08k4oz0321x12596 135
xs27_6t1u08k4ozw11x12596 64
xs27_69ak8gzx1qq1uge2 33
xs27_xckggka52z0ggcia4z3421 30
xs27_gj1u08k4oz1221x12596 21
xs27_259m88gzy01259hu0oo 20
xs27_ckggka52z4aicggzx1243 20
xs27_0ckggka52z0ggcia4z3421 7
xs27_g88m952z12lkk8z696 6
xs27_x6a88brzg88m952z121 6
xs27_3hu0o48gz643w1169a4 4
xs27_8k4o0e9j08ozw1259611 3
xs27_cq1u08k4oz0121x12596 3
xs27_wj1u0o48gz2521x1169a4 3
xs27_y0mm0u156zo4kb421z01 3
xs27_06996zcil9h3zx3452 2
xs27_08kkm453z0g8ka96z1221 2
xs27_0ckggm96z0ggcia4z3421 2
xs27_0g8ka96zhaal4koz121 2
xs27_2egmp3z0g88m952z0121 2
xs27_69mggkcz0ggcia4z3421 2
xs27_g84q552zg99m952z121 2
xs27_g8k453z1ijcia4z3421 2
xs27_x2lla8kk8zo4kb421z01 2
xs27_x5b8b96zg88m952z121 2
xs27_xg88m952z8kkl21zx696 2
xs27_069ba96zg88m952z121 1
xs27_0g31eoz8l5p1zw12596 1
xs27_0g8ka960uiz122dia4 1
xs27_0g8ka96z1221eio0ui 1
xs27_0g8ka96zhaalkcz123 1
xs27_0g8p78k4oz3421x12596 1
xs27_0gy1g8ka96z349mge1221 1
xs27_0rb88a6zg88m952z121 1
xs27_259m88gzy01259hu066 1
xs27_31egmmzwg8ka96z01221 1
xs27_35is0g8gzw470122dik8 1
xs27_39m88gzxhhdia4zw3421 1
xs27_69ak8gz4a61uihzy223 1
xs27_8k4o03pmge2zw12596 1
xs27_g0s255m88gz110cia521 1
xs27_o48gxml1e8z01169a43 1
xs27_wc9baaczg88m952z121 1
xs27_wcaab9czg88m952z121 1
xs27_y0ml1u066zo4kb421z01 1
xs28_0g8ka9m88gz122dia521 13117080
xs28_0g8ka96z1iidia4z3421 5778
xs28_0g8ka9mggz1221eip023 87
xs28_69ak8gzx122dik8gzy53452 9
xs28_w8o653z3ia9m952z0121 5
xs28_xg88bbgzxo5l91z69521 3
xs28_0ckgoge13z0ggcia4z3421 2
xs28_0g8ka96z1aq1eicz321 2
xs28_0g8ka96zhaahe2koz011 2
xs28_0g8ka96zhaq1uicz11 2
xs28_354lb8jdzcia521 2
xs28_xg88m952z4aidhhzx1243 2
xs28_039u08k4oz6521x12596 1
xs28_0bq2koz0ijcia4z3421 1
xs28_0c4owg8ka96zok9701221 1
xs28_0ckgil96z0ggcia4z3421 1
xs28_0g8ka96z122dkk8z6513 1
xs28_0g8ka9mggz1221ehe221 1
xs28_0oimge13z4aicggzx1243 1
xs28_178ba96zg88m952z121 1
xs28_255q84ozxg99m952zx121 1
xs28_651u08k4oz2521x12596 1
xs28_696o8gzw1iidia4zw3421 1
xs28_69ak8gzm2s3qq1z11 1
xs28_69ak8gzx1ijcia4zx3421 1
xs28_8k4o0e9jzw1259616a4 1
xs28_cill2zxh9licz02543 1
xs28_g88bbgz8l5p1zw12596 1
xs28_g88m952sgz121xciq23 1
xs28_ml1u0o48gz121x1169a4 1
xs28_o48gw3lkia4z01169a43 1
xs28_o4k6p3zg99m952z121 1
xs28_wcaab9a4zg88m952z121 1
xs28_x6a88e1e8zg88m952z121 1
xs28_xckggka53z0ggcia4z3421 1
xs28_xckggm952z0ggcia4z3421 1
xs28_xg88m952z8kkl21zx69a4 1
xs28_y0ggc9bqiczo4kb421z01 1
xs29_ml1u08k4oz1221x12596 35
xs29_x69ak8gzw3phe1221z253 11
xs29_69mgmicz0ggcia4z3421 10
xs29_256o8gzw64kb8m952zy0121 9
xs29_0g8ka96o8gz1221w2fgb6 6
xs29_03lkmggozwh8kicz2543 2
xs29_y0ml1u0696zo4kb421z01 2
xs29_039u0o48gzca23w1169a4 1
xs29_0g8k8a53z1iidia4z3421 1
xs29_0g8ka96w8oz122dkk8711 1
xs29_0j9acz347o4k8z69521 1
xs29_0okkm88m952zca24521 1
xs29_252sgzx254kmzwo4kb421zx1 1
xs29_35s2aczxh9licz02543 1
xs29_651u08k4oz6521x12596 1
xs29_69ak8gxg8kczx1221egf2 1
xs29_69ak8gzcie1qa1zy01252 1
xs29_69ak8gzx1221egmmzy6346 1
xs29_8e1egmmzxg8ka96zw1221 1
xs29_c9jz354ngcia4zw3421 1
xs29_cimge96zg88m952z121 1
xs29_wc9b8b96zg88m952z121 1
xs29_wckgogka52zwg8kicz2543 1
xs29_wmlligozwh8kicz2543 1
xs29_xcimgm93z0ggcia4z3421 1
xs29_y0ml1u0653zo4kb421z01 1
xs29_y18o0e93z8k4r221zw12596 1
xs29_y2ogie0e96zg88m952z121 1
xs30_wciiriiczwg8kicz2543 62
xs30_699eg88m952zc970121 9
xs30_069b88b96zg88m952z121 4
xs30_xokie0e96z259m88gzy0121 4
xs30_651u08k4oz33032w12596 3
xs30_699eg8gzc970122dik8 3
xs30_8k4owokie0e96zw12596 3
xs30_gg06996z12ib8n952zw121 3
xs30_ca1u08k4oz33032w12596 2
xs30_069icw8k8zxo5l91z69521 1
xs30_0g8ka960uh3z122diic 1
xs30_0gillm88m952z346w121 1
xs30_0mligowo4k8z346w69521 1
xs30_ciqbaacz0g88m952z0121 1
xs30_g8ka52z12iai3zw122dik8 1
xs30_ml1u8z1iidia4z3421 1
xs30_xg88m952z0c89a9oz6953 1
xs30_xo48ci53zxo5l91z69521 1
xs31_03lkmggkczwh8kicz2543 4
xs31_0g8ka9mggz1221078c1eic 2
xs31_0259a4z69d1dik8gzy33452 1
xs31_0g8ka96z1221ehp3s4ozy51 1
xs31_0g8ka96zhaa98gz1qq321 1
xs31_0g8ka96zhaap8gz122qq1 1
xs31_0o4c0ci96zw1p5l8z69521 1
xs31_354ljgzw1248n4ozy312596 1
xs31_69ak8gzx1qa1u0e96zy1121 1
xs31_o80uh3z8l5q23zw12596 1
xs31_wcc0v1oozcil9hzx3452 1
xs32_0g8ka9m88ge2z122dia521 5
xs32_069acw8ozw3h95p1z4a9611 1
xs32_69mggzw6aq10g8kiczy012543 1
xs32_g88m952s0c4oz121y0ol5d 1
xs32_w3ia4oz4a9m99m952zx121 1
xs33_02lligz0346kk3zo4kb421z01 1
xs33_3lk453z344ngcia4zw3421 1
xs33_x2lligzx3kk643zo4kb421z01 1
xs33_y3gbr8brzwg8kic32z2543 1
xs35_354kl3zw32gv04aicggzy61243 1
xs37_6996o8gz04aidiidik8zy01243 2

muzik
Posts: 3775
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Script request thread

Post by muzik » January 16th, 2020, 4:44 pm

Request: A script that reads a 2-state rule table and outputs its MAP string
Bored of using the Moore neighbourhood for everything? Introducing the Range-2 von Neumann isotropic non-totalistic rulespace!

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

Re: Script request thread

Post by dvgrn » January 16th, 2020, 5:10 pm

muzik wrote:
January 16th, 2020, 4:44 pm
Request: A script that reads a 2-state rule table and outputs its MAP string
Wouldn't this version of MAPper work? I.e., Ctrl+Shift+O the rule table in question, then run MAPper and copy out the MAP string?

I just tried this with olife, and got a MAP string that seems to behave identically to olife:

Code: Select all

x = 60, y = 60, rule = MAPARYXfhbofmgeaHboaIDogDZoXuhogOiAaIDogIAAgABWaD7oaIDogGiA6ICAAIAAaIDogIAAgACAAIAAAAAAAA
b2obob4obobo5bo2bo3b4ob3ob3o2b3o2b3obo4b5o$2o6b2obobob2o2b2o2bo2bo2b4o
b2o5b3obo2bob5o4bo$2b2o3bo4bob2obo2b3o2bob2ob2obobob2ob2o7bo2b2obo$2o
2bob2ob6ob3obo3b2o2bo2bo2bo2b2o3b2o3b4o2b3ob3o$3bo4bobo2bobo2b2o2bo4b
2o4bo5b4ob5ob2o2bo2b3o$4o5bobobo2bob4obo5bob2o3bo2b3o2b3obo2b3o3bobo$b
2obob3obo2b2o2bo2bo2bobobo7bo5bob2obobo2b4ob4o$2o2b3o3bo4b3obo2bo3b2o
2bobo6b2o2b2obo2b3obo2bo2bo$b3o2b2o3b2o2bob2obo3bobo3b2ob2o6b3obo2b2o
4bo4bo$b6obo3bo3b3obob8o2b2o3bobo5bo2bobo2bo3bo$b2o3bo3b5obob2o2b2ob2o
b2ob2o3b2o2bo3bobo4bobob3o$bobo3b2obobob3ob3o6bobo4bo3bob4o2bob2o2b2o
5bo$5bo2b2obo6b4o2bob2ob2ob2o3bob5obob2o4b3o$7obob2o3bo2b2o2bo4bo4b2ob
2ob4o2bobob4o2b2obo$o2b2ob2o2b11obob4ob3o5b4ob2obob2ob2o2bo2bobo$obob
3ob2obobob2o2b2obobob5obo2bo4b2o2b2obo3b2o3bobo$obo3b4ob3ob5obo3b2ob2o
2b4o2b2o2bo4b3o2bo3b2o$5bobobobob2o4bob4obob2o4b2o2bobobo3b2o2bo2b3o$o
b2obobo2bo2bob3o2bo5bob2ob2o2b2obobobob2ob4ob2ob5o$3b5obo3bo2bo8b3o2bo
4bo4bo2bobob2ob3o3bo$o2bo3bobo2b3obo3b2obob2o2bob3o5bob2o5bo3b2o2bob2o
$o3bo3bo2b2o4b3ob4ob3ob4obob5ob3ob4obobob2o$2ob4obobobobobo2bo2b2o2b2o
8bob2obobo4bo4b4o$2o6bobo3bo2b3ob4o2b9o2bobobo3b2o4b2o2b4o$5ob5obo3b2o
b6obo2bob3obob4o2b4o2b2ob2obo2b2o$2ob3ob2o2b2o2b2ob2obob2obobo2b4ob2ob
2ob2o2b5ob3obob2o$3o5b2o3b5ob4o6b2o5bo2b4o2b3ob9obo$b2o3b2obob3obo3b3o
7bo3bo5b2ob2obo2bo3bo5b2o$o4b5ob3o3b3o4b2o3b5o2b2obo2b3o2b2o3bo3bobo$b
2o3b2obob3obo3b6o2b2obob2ob5obo2bo2b2obo2bo2bo$3b2ob2ob3obo2b3ob2o3b2o
4bobo3bob4obo3b2o3b2obob2o$2b4o5b5ob8o4b2o2b3obobob3obo2b2obo3bobobo$
4bobob3ob3o4bo2bo2b2o3bobobo3bobo7bo4bobo3bo$2o3b3ob4o2b2o2bo3b2obob2o
b3obo3b2o3bobo2bo2bobo4bo$o6b3ob3ob6obobob3ob2ob2ob2ob3ob2o2b2obo6bobo
$3b2ob2o2bob2o2b3ob3ob3o2b3o2b6o3bob2o2b2o2b2o$o3b3ob4o2bob2o3b2o8bob
2o2b2obo3bobo4b4o$3ob3o3b8o3b2obo2b2o2bo2b2obo3bo3bob2obo3b2obo$obob2o
bob6obo3bobo2bob2ob4o4b3ob3o2b2ob2ob3ob2o$o4b3ob2ob2o2bo2bobobo3b2obob
4obob2o2b4ob3o3b2o$3b2o2b2o2bo3bobobo4bo5bo2b2obo2bobo2bobobo3b3o2b2o$
bobo4b3o2bo3b2obob2o2b6obo2bo3bo3bob3o4b3o2bo$4o5bo2b2o3b5o2bobo2b2o3b
3ob4o2b2o2b2o2b3ob3o$2b2o3bob4obob3o3bo4bo7b4obob3o2b6o$b4ob3ob5o2bo5b
2ob2o2bob2o7bo3b4o2bo2bob2o$ob6o2b3ob3o6bob2obo3b3ob2obo2b3o2b6o2bo2bo
$o2bob2obob3o3b3o2b2obob2obo4bo2b3o3bo3bo4b4o2bo$bo2b2o2b5o2bobobob2ob
5o5b2o2b6o3bo2bo3bo2bo$bo2bobob4o7bobo3bob4o3b6obo2bo3bob3o4bobo$3bo2b
2obob2o3b5obob2ob2o3b2o2b2ob2o2bob2ob2obob2o$bo4b2o2b3o2bo2bob2obobo2b
obobobo2b2o2bo3bob2obo7bo$b2o2b2o2b3obob2o3bo3bobo2bobo2bobob2ob2o4bo
2bob2o2b4o$3ob6obo2bo6b2o2b2obo2bo2b2obob2ob2obo6bo2bo3bo$o2bob3ob5o3b
obo2b2o4bo5bo3b3o3bob3obo2b2ob2o$b4obob3ob4o5b3obo4b2obo4b2o2b2o2bo2bo
4bob3o$2ob3obo3b3o3b2o2bob2obo3b5o3b5ob4obo3bo3b3o$ob3ob2o3bob2ob2o2b
2o2bo3bo2bo4bo3bo4b2o5b3ob2obo$3obo2bob3obob3ob3o2bo3b2o2b3ob3obo2b2o
2b2o4bo2b4o$b3obobob2obo2b2obo4b2ob4o5b2ob2o3bo2bo2b2obob2o3bo$b2ob2ob
2ob3obo2bo3bobobo3b4o3b4obob2o3bo2bo7bo!
[[ THUMBNAIL THUMBSIZE 3 ]]

Code: Select all

x = 60, y = 60, rule = olife
b2obob4obobo5bo2bo3b4ob3ob3o2b3o2b3obo4b5o$2o6b2obobob2o2b2o2bo2bo2b4o
b2o5b3obo2bob5o4bo$2b2o3bo4bob2obo2b3o2bob2ob2obobob2ob2o7bo2b2obo$2o
2bob2ob6ob3obo3b2o2bo2bo2bo2b2o3b2o3b4o2b3ob3o$3bo4bobo2bobo2b2o2bo4b
2o4bo5b4ob5ob2o2bo2b3o$4o5bobobo2bob4obo5bob2o3bo2b3o2b3obo2b3o3bobo$b
2obob3obo2b2o2bo2bo2bobobo7bo5bob2obobo2b4ob4o$2o2b3o3bo4b3obo2bo3b2o
2bobo6b2o2b2obo2b3obo2bo2bo$b3o2b2o3b2o2bob2obo3bobo3b2ob2o6b3obo2b2o
4bo4bo$b6obo3bo3b3obob8o2b2o3bobo5bo2bobo2bo3bo$b2o3bo3b5obob2o2b2ob2o
b2ob2o3b2o2bo3bobo4bobob3o$bobo3b2obobob3ob3o6bobo4bo3bob4o2bob2o2b2o
5bo$5bo2b2obo6b4o2bob2ob2ob2o3bob5obob2o4b3o$7obob2o3bo2b2o2bo4bo4b2ob
2ob4o2bobob4o2b2obo$o2b2ob2o2b11obob4ob3o5b4ob2obob2ob2o2bo2bobo$obob
3ob2obobob2o2b2obobob5obo2bo4b2o2b2obo3b2o3bobo$obo3b4ob3ob5obo3b2ob2o
2b4o2b2o2bo4b3o2bo3b2o$5bobobobob2o4bob4obob2o4b2o2bobobo3b2o2bo2b3o$o
b2obobo2bo2bob3o2bo5bob2ob2o2b2obobobob2ob4ob2ob5o$3b5obo3bo2bo8b3o2bo
4bo4bo2bobob2ob3o3bo$o2bo3bobo2b3obo3b2obob2o2bob3o5bob2o5bo3b2o2bob2o
$o3bo3bo2b2o4b3ob4ob3ob4obob5ob3ob4obobob2o$2ob4obobobobobo2bo2b2o2b2o
8bob2obobo4bo4b4o$2o6bobo3bo2b3ob4o2b9o2bobobo3b2o4b2o2b4o$5ob5obo3b2o
b6obo2bob3obob4o2b4o2b2ob2obo2b2o$2ob3ob2o2b2o2b2ob2obob2obobo2b4ob2ob
2ob2o2b5ob3obob2o$3o5b2o3b5ob4o6b2o5bo2b4o2b3ob9obo$b2o3b2obob3obo3b3o
7bo3bo5b2ob2obo2bo3bo5b2o$o4b5ob3o3b3o4b2o3b5o2b2obo2b3o2b2o3bo3bobo$b
2o3b2obob3obo3b6o2b2obob2ob5obo2bo2b2obo2bo2bo$3b2ob2ob3obo2b3ob2o3b2o
4bobo3bob4obo3b2o3b2obob2o$2b4o5b5ob8o4b2o2b3obobob3obo2b2obo3bobobo$
4bobob3ob3o4bo2bo2b2o3bobobo3bobo7bo4bobo3bo$2o3b3ob4o2b2o2bo3b2obob2o
b3obo3b2o3bobo2bo2bobo4bo$o6b3ob3ob6obobob3ob2ob2ob2ob3ob2o2b2obo6bobo
$3b2ob2o2bob2o2b3ob3ob3o2b3o2b6o3bob2o2b2o2b2o$o3b3ob4o2bob2o3b2o8bob
2o2b2obo3bobo4b4o$3ob3o3b8o3b2obo2b2o2bo2b2obo3bo3bob2obo3b2obo$obob2o
bob6obo3bobo2bob2ob4o4b3ob3o2b2ob2ob3ob2o$o4b3ob2ob2o2bo2bobobo3b2obob
4obob2o2b4ob3o3b2o$3b2o2b2o2bo3bobobo4bo5bo2b2obo2bobo2bobobo3b3o2b2o$
bobo4b3o2bo3b2obob2o2b6obo2bo3bo3bob3o4b3o2bo$4o5bo2b2o3b5o2bobo2b2o3b
3ob4o2b2o2b2o2b3ob3o$2b2o3bob4obob3o3bo4bo7b4obob3o2b6o$b4ob3ob5o2bo5b
2ob2o2bob2o7bo3b4o2bo2bob2o$ob6o2b3ob3o6bob2obo3b3ob2obo2b3o2b6o2bo2bo
$o2bob2obob3o3b3o2b2obob2obo4bo2b3o3bo3bo4b4o2bo$bo2b2o2b5o2bobobob2ob
5o5b2o2b6o3bo2bo3bo2bo$bo2bobob4o7bobo3bob4o3b6obo2bo3bob3o4bobo$3bo2b
2obob2o3b5obob2ob2o3b2o2b2ob2o2bob2ob2obob2o$bo4b2o2b3o2bo2bob2obobo2b
obobobo2b2o2bo3bob2obo7bo$b2o2b2o2b3obob2o3bo3bobo2bobo2bobob2ob2o4bo
2bob2o2b4o$3ob6obo2bo6b2o2b2obo2bo2b2obob2ob2obo6bo2bo3bo$o2bob3ob5o3b
obo2b2o4bo5bo3b3o3bob3obo2b2ob2o$b4obob3ob4o5b3obo4b2obo4b2o2b2o2bo2bo
4bob3o$2ob3obo3b3o3b2o2bob2obo3b5o3b5ob4obo3bo3b3o$ob3ob2o3bob2ob2o2b
2o2bo3bo2bo4bo3bo4b2o5b3ob2obo$3obo2bob3obob3ob3o2bo3b2o2b3ob3obo2b2o
2b2o4bo2b4o$b3obobob2obo2b2obo4b2ob4o5b2ob2o3bo2bo2b2obob2o3bo$b2ob2ob
2ob3obo2bo3bobobo3b4o3b4obob2o3bo2bo7bo!
[[ THUMBNAIL THUMBSIZE 3 ]]
EDIT: Just made a small adjustment to the script, so that you can clear out the default "1" or put in "0" if you want, and the script exits without errors.

muzik
Posts: 3775
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Script request thread

Post by muzik » January 23rd, 2020, 3:50 pm

Is there one for converting neumann binary rules to ruletables?
Bored of using the Moore neighbourhood for everything? Introducing the Range-2 von Neumann isotropic non-totalistic rulespace!

User avatar
LaundryPizza03
Posts: 617
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: Script request thread

Post by LaundryPizza03 » February 18th, 2020, 10:00 pm

A script to turn a working oscillator or spaceship partial into an LLS search file for partial extension. For example, taking the first 11 rows of this:

Code: Select all

x = 22, y = 7, rule = B2n3/S23-q
20bo$10b2o5b2obo$3b2o4bo2bo4b4o$2ob3o2bo5b2o5bo$3b2o4bo2bo4b4o$10b2o5b
2obo$20bo!
and making an LLS search file that looks like this (red = *, white = *').

Code: Select all

x = 16, y = 9, rule = B2n3/S23-qHistory
11B4DC$11B4DC$10BA4DC$3B2A4BAB4DC$2AB3A2BA2B4DC$3B2A4BAB4DC$10BA4DC$
11B4DC$11B4DC!
I did this manually several times and found it tedious.

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

Ian07
Posts: 524
Joined: September 22nd, 2018, 8:48 am

Re: Script request thread

Post by Ian07 » February 21st, 2020, 5:24 pm

Is there a version of Giffer out there that produces PNGs instead of GIFs? I tried just changing the file name to .png, and it worked surprisingly well... until I tried to upload the images to the wiki, which rejected them due to a discrepancy between the file extension and the actual MIME file type.

Hunting
Posts: 2237
Joined: September 11th, 2017, 2:54 am

Re: Script request thread

Post by Hunting » March 6th, 2020, 6:56 pm

A methuselah searching script that works like this

Code: Select all

local g = golly()
local gp = require "gplus"
local selection = g.getselrect()
if #selection == 0 then
   g.exit("There is no selection.")
end
largestlifespanfoundsofar = 0
runpatterns = 0
founddiehards = 0
g.addlayer()
g.setlayer(0)
while ( true ) do
   g.new("")
   g.select(selection)
   g.randfill(37)
   runpatterns = runpatterns+1
   count = 0
   while ( true ) do
      previ = tonumber(g.getpop())
      g.run(1)
      count = count+1
      if tonumber(g.getpop()) == previ then
         if (count > largestlifespanfoundsofar) then
            largestlifespanfoundsofar = count
            g.show(""..runpatterns.." patterns run, found "..largestlifespanfoundsofar.."-generation methuselah")
            g.reset()
            g.setlayer(1)
            g.dellayer()
            g.duplicate()
            g.setname(largestlifespanfoundsofar.."-generation methuselah")
            g.update()
            g.setlayer(0)
         end
         break
      end
   end
end
Except it does not check stabilization by checking if the population of the previous generation and the current population are the same (It will stuck forever if there is an oscillator in the ash. Also, some definitely not stable pattern satisfy that.)

Taken from Golly Scripts thread, then modified a bit
Proud member of the p22ers!

Working on:

LeapLife Demonoid

HartmutHolzwart
Posts: 441
Joined: June 27th, 2009, 10:58 am
Location: Germany

Re: Script request thread

Post by HartmutHolzwart » March 25th, 2020, 3:19 am

Take a large list of patterns available as one large file (e.g. a collection of all odd symmetric 2c/5 Space ships of width 17 like available from Matthias). Then I want a script in Golly to select exactly those that contain a given sub pattern.

This could be used e.g. for finding connections of partial results to known parts without need to run a full wls search. I‘ve done. This manually for all the time, but there must be a better way.

Hartmut

User avatar
gameoflifemaniac
Posts: 923
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Script request thread

Post by gameoflifemaniac » March 25th, 2020, 6:30 pm

How about a script that merges incremental syntheses?
This is a signature

Ian07
Posts: 524
Joined: September 22nd, 2018, 8:48 am

Re: Script request thread

Post by Ian07 » March 25th, 2020, 7:20 pm

gameoflifemaniac wrote:
March 25th, 2020, 6:30 pm
How about a script that merges incremental syntheses?
https://github.com/dvgrn/b3s23life/blob ... nthesis.py

It's not perfect, and it doesn't really work with certain types of syntheses, but it does work if you're willing to adjust the positions of the steps manually. From what I've heard, there's also a new version intermittently in development.

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

Re: Script request thread

Post by dvgrn » March 25th, 2020, 10:09 pm

Ian07 wrote:
March 25th, 2020, 7:20 pm
From what I've heard, there's also a new version intermittently in development.
Hmm, I haven't heard anything about that. It's more like, every time I try to make it work and it doesn't because of some obscure bug or other, I fix that bug and get it working for that case (and probably introduce two new bugs). Somebody should just rewrite it from scratch, and plan for handling intermediate oscillators and arbitrary spacing between stages and so on, from the ground up this time.

yaochen2
Posts: 5
Joined: September 5th, 2018, 11:48 pm

Re: Script request thread

Post by yaochen2 » March 26th, 2020, 11:46 pm

I just want a spaceship search script in Python, because C does not work for me.

Also don't use Lifelib because it also doesn't work for me.
Last edited by yaochen2 on March 26th, 2020, 11:57 pm, edited 1 time in total.

User avatar
Saka
Posts: 3201
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X
Contact:

Re: Script request thread

Post by Saka » March 26th, 2020, 11:51 pm

yaochen2 wrote:
March 26th, 2020, 11:46 pm
I just want a spaceship search script in Python, because C does not work for me.
Hi, welcome to the forums!
Can you detail why C doesnt work? Did you follow the Tutorials? Most search programs are written in C, unfortunately, but if you really want something you might want to check out this thread:
viewtopic.php?f=9&t=3039
Instead of finding spaceships in a rule, it finds rules where a pattern is a spaceship.

Code: Select all

x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!
(Check gen 2)

yaochen2
Posts: 5
Joined: September 5th, 2018, 11:48 pm

Re: Script request thread

Post by yaochen2 » March 27th, 2020, 12:02 am

but everytime I try to follow the tutorial it always says an error message

I created a C folder inside the cygwin64 folder and put the script in there.
Last edited by yaochen2 on March 27th, 2020, 12:07 am, edited 1 time in total.

User avatar
Saka
Posts: 3201
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X
Contact:

Re: Script request thread

Post by Saka » March 27th, 2020, 12:03 am

yaochen2 wrote:
March 27th, 2020, 12:02 am
but everytime I try to follow the tutorial it always says an error message
Could you post it here along with what you typed in?

Code: Select all

x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!
(Check gen 2)

yaochen2
Posts: 5
Joined: September 5th, 2018, 11:48 pm

Re: Script request thread

Post by yaochen2 » March 27th, 2020, 12:08 am

cd /C/gfind

User avatar
Saka
Posts: 3201
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X
Contact:

Re: Script request thread

Post by Saka » March 27th, 2020, 12:15 am

yaochen2 wrote:
March 27th, 2020, 12:08 am
cd /C/gfind
ok, from what I can tell, you made a folder called "C" in cygwin64 and inside that folder you made a folder called gfind and then put gfind.c inside the "gfind" folder, yes?

It seems like something has changed in the new Cygwin update, try instead putting the C folder inside cygwin64 -> home -> YourUsername and then try it again. I'll update the tutorial.

Code: Select all

x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!
(Check gen 2)

yaochen2
Posts: 5
Joined: September 5th, 2018, 11:48 pm

Re: Script request thread

Post by yaochen2 » March 27th, 2020, 12:19 am

i give up trying to use C

Hunting
Posts: 2237
Joined: September 11th, 2017, 2:54 am

Re: Script request thread

Post by Hunting » March 27th, 2020, 1:29 am

yaochen2 wrote:
March 27th, 2020, 12:19 am
i give up trying to use C
...

1. Stop making pointless spam posts.
2. Stop ignoring others' comments.
Proud member of the p22ers!

Working on:

LeapLife Demonoid

User avatar
Saka
Posts: 3201
Joined: June 19th, 2015, 8:50 pm
Location: In the kingdom of Sultan Hamengkubuwono X
Contact:

Re: Script request thread

Post by Saka » March 27th, 2020, 1:50 am

Hunting wrote:
March 27th, 2020, 1:29 am
yaochen2 wrote:
March 27th, 2020, 12:19 am
i give up trying to use C
...

1. Stop making pointless spam posts.
2. Stop ignoring others' comments.
1. Stop being rude please, and try to be more motivating.

Yaochen, most search programs are written in C, not just gfind, so I suggest you push on and keep trying. What problems are you running into now exactly? Perhaps wait until a more experienced member arrives.

Code: Select all

x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!
(Check gen 2)

User avatar
gameoflifemaniac
Posts: 923
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Script request thread

Post by gameoflifemaniac » March 28th, 2020, 3:35 pm

Hunting wrote:
March 6th, 2020, 6:56 pm
A methuselah searching script that works like this

Code: Select all

local g = golly()
local gp = require "gplus"
local selection = g.getselrect()
if #selection == 0 then
   g.exit("There is no selection.")
end
largestlifespanfoundsofar = 0
runpatterns = 0
founddiehards = 0
g.addlayer()
g.setlayer(0)
while ( true ) do
   g.new("")
   g.select(selection)
   g.randfill(37)
   runpatterns = runpatterns+1
   count = 0
   while ( true ) do
      previ = tonumber(g.getpop())
      g.run(1)
      count = count+1
      if tonumber(g.getpop()) == previ then
         if (count > largestlifespanfoundsofar) then
            largestlifespanfoundsofar = count
            g.show(""..runpatterns.." patterns run, found "..largestlifespanfoundsofar.."-generation methuselah")
            g.reset()
            g.setlayer(1)
            g.dellayer()
            g.duplicate()
            g.setname(largestlifespanfoundsofar.."-generation methuselah")
            g.update()
            g.setlayer(0)
         end
         break
      end
   end
end
Except it does not check stabilization by checking if the population of the previous generation and the current population are the same (It will stuck forever if there is an oscillator in the ash. Also, some definitely not stable pattern satisfy that.)

Taken from Golly Scripts thread, then modified a bit
For information, for those who don't know, this is a modified version of my script finding diehards. And Hunting, it doesn't work the right way.
This script says this methuselah lasts 239 generations;

Code: Select all

x = 16, y = 16, rule = B3/S23
5bo2b2o5bo$2obobo3bobo2b2o$8bo$3bo5bo$b3o6bobo2bo$2bo3b3obo4bo$b2obo4b
o3b3o$2o9bobo$4bobo2b2obo2bo$2obo5bob4o$3bobobobo3bo$3bobob2ob2ob2o$2o
7b2o3b2o$obo2bobo2bobo$2bobo2b4o$obobo7bo2bo!
but it actually lasts 3.4k generations. You would have to split the objects every generation and check if they're a still ife, an oscillator, a spaceship or puffer. I know, it's really hard to do, but, say, apgsearch is supposed to do the work for you.
This is a signature

Post Reply