Alternating rules simulating one-dimensional rules

For discussion of other cellular automata.
Post Reply
User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Alternating rules simulating one-dimensional rules

Post by muzik » September 15th, 2017, 2:36 pm

B026/S1 has the quality of being able to simulate a one-dimensional higher range rule with one-dimensional soups, despite being explosive with two-dimensional rules. Using the same concept golly uses to simulate B0 rules using two alternating rules I have devised three more rules (and yes, I did this all manually by myself for the first time ever) of identical description (except for the fact that these aren't B0).


Rule 1 - alternates between B134578/S02345678 and B6i7/S268
Rule 2 - alternates between B12ci34578/S02345678 and B7/S268
Rule 3 - alternates between B12ci34578/S02345678 and B6i7/S268

Code: Select all

@RULE Unidim1
@TABLE
n_states:3
neighborhood:Moore
symmetries:permute
var a={0,1,2}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a
var i=a
# State 1
0,1,0,0,0,0,0,0,0,2
0,0,1,0,0,0,0,0,0,2
0,1,1,1,0,0,0,0,0,2
0,1,1,0,1,0,0,0,0,2
0,1,1,0,0,1,0,0,0,2
0,1,1,0,0,0,1,0,0,2
0,1,1,0,0,0,0,1,0,2
0,1,1,0,0,0,0,0,1,2
0,1,0,1,0,1,0,0,0,2
0,1,0,1,0,0,1,0,0,2
0,1,0,0,1,0,1,0,0,2
0,0,1,0,1,0,1,0,0,2
0,1,1,1,1,0,0,0,0,2
0,1,1,1,0,1,0,0,0,2
0,1,1,1,0,0,1,0,0,2
0,1,1,0,1,1,0,0,0,2
0,1,1,0,1,0,1,0,0,2
0,1,1,0,1,0,0,1,0,2
0,1,1,0,1,0,0,0,1,2
0,1,1,0,0,1,1,0,0,2
0,1,1,0,0,1,0,1,0,2
0,1,1,0,0,1,0,0,1,2
0,1,1,0,0,0,1,1,0,2
0,1,0,1,0,1,0,1,0,2
0,0,1,0,1,0,1,0,1,2
0,1,1,1,1,1,0,0,0,2
0,1,1,1,1,0,1,0,0,2
0,1,1,1,1,0,0,1,0,2
0,1,1,1,1,0,0,0,1,2
0,1,1,1,0,1,1,0,0,2
0,1,1,1,0,1,0,1,0,2
0,1,1,0,1,1,1,0,0,2
0,1,1,0,1,1,0,1,0,2
0,1,1,0,1,0,1,1,0,2
0,1,1,0,1,0,1,0,1,2
0,1,1,1,1,1,1,1,0,2
0,1,1,1,1,1,1,0,1,2
0,1,1,1,1,1,1,1,1,2
1,0,0,0,0,0,0,0,0,2
1,1,1,0,0,0,0,0,0,2
1,1,0,1,0,0,0,0,0,2
1,1,0,0,1,0,0,0,0,2
1,1,0,0,0,1,0,0,0,2
1,0,1,0,1,0,0,0,0,2
1,0,1,0,0,0,1,0,0,2
1,1,1,1,0,0,0,0,0,2
1,1,1,0,1,0,0,0,0,2
1,1,1,0,0,1,0,0,0,2
1,1,1,0,0,0,1,0,0,2
1,1,1,0,0,0,0,1,0,2
1,1,1,0,0,0,0,0,1,2
1,1,0,1,0,1,0,0,0,2
1,1,0,1,0,0,1,0,0,2
1,1,0,0,1,0,1,0,0,2
1,0,1,0,1,0,1,0,0,2
1,1,1,1,1,0,0,0,0,2
1,1,1,1,0,1,0,0,0,2
1,1,1,1,0,0,1,0,0,2
1,1,1,0,1,1,0,0,0,2
1,1,1,0,1,0,1,0,0,2
1,1,1,0,1,0,0,1,0,2
1,1,1,0,1,0,0,0,1,2
1,1,1,0,0,1,1,0,0,2
1,1,1,0,0,1,0,1,0,2
1,1,1,0,0,1,0,0,1,2
1,1,1,0,0,0,1,1,0,2
1,1,0,1,0,1,0,1,0,2
1,0,1,0,1,0,1,0,1,2
1,1,1,1,1,1,0,0,0,2
1,1,1,1,1,0,1,0,0,2
1,1,1,1,1,0,0,1,0,2
1,1,1,1,1,0,0,0,1,2
1,1,1,1,0,1,1,0,0,2
1,1,1,1,0,1,0,1,0,2
1,1,1,0,1,1,1,0,0,2
1,1,1,0,1,1,0,1,0,2
1,1,1,0,1,0,1,1,0,2
1,1,1,0,1,0,1,0,1,2
1,1,1,1,1,1,1,0,0,2
1,1,1,1,1,1,0,1,0,2
1,1,1,1,1,0,1,1,0,2
1,1,1,1,1,0,1,0,1,2
1,1,1,1,0,1,1,1,0,2
1,1,1,0,1,1,1,0,1,2
1,1,1,1,1,1,1,1,0,2
1,1,1,1,1,1,1,0,1,2
1,1,1,1,1,1,1,1,1,2
# State 2
0,2,2,0,2,2,2,0,2,1
0,2,2,2,2,2,2,2,0,1
0,2,2,2,2,2,2,0,2,1
2,2,2,0,0,0,0,0,0,1
2,2,0,2,0,0,0,0,0,1
2,2,0,0,2,0,0,0,0,1
2,2,0,0,0,2,0,0,0,1
2,0,2,0,2,0,0,0,0,1
2,0,2,0,0,0,2,0,0,1
2,2,2,2,2,2,2,0,0,1
2,2,2,2,2,2,0,2,0,1
2,2,2,2,2,0,2,2,0,1
2,2,2,2,2,0,2,0,2,1
2,2,2,2,0,2,2,2,0,1
2,2,2,0,2,2,2,0,2,1
2,2,2,2,2,2,2,2,2,1

#
a,b,c,d,e,f,g,h,i,0

@COLORS
1 250 250 255
2 255 255 250

Code: Select all

@RULE Unidim2

Automatically generated by a Lua script.

@TABLE
n_states:3
neighborhood:Moore
symmetries:rotate4reflect

var a={0,1,2}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a
#Rule 1
0,0,0,0,0,0,0,0,1,2
0,1,0,0,0,0,0,0,0,2
0,0,1,0,0,0,0,0,1,2
0,1,0,0,0,1,0,0,0,2
0,0,1,0,0,0,1,0,1,2
0,1,0,1,0,0,0,1,0,2
0,0,0,1,0,1,0,0,1,2
0,1,0,0,0,0,0,1,1,2
0,1,1,0,0,0,0,0,1,2
0,0,1,1,0,0,0,0,1,2
0,0,1,0,0,1,0,0,1,2
0,1,0,0,1,0,0,0,1,2
0,1,0,1,0,0,0,0,1,2
0,1,0,0,0,1,0,0,1,2
0,0,1,0,1,0,1,0,1,2
0,1,0,1,0,1,0,1,0,2
0,0,1,0,0,1,0,1,1,2
0,1,1,1,0,0,0,0,1,2
0,0,1,1,0,0,0,1,1,2
0,1,1,0,0,0,1,0,1,2
0,0,1,1,0,0,1,0,1,2
0,1,0,0,1,0,0,1,1,2
0,1,0,1,0,1,0,0,1,2
0,1,0,1,0,0,0,1,1,2
0,1,1,0,0,1,0,0,1,2
0,1,0,1,1,0,0,0,1,2
0,1,0,0,1,1,0,0,1,2
0,1,0,1,1,1,0,1,0,2
0,0,1,0,1,1,1,0,1,2
0,1,1,0,1,0,1,1,0,2
0,0,1,1,1,1,1,0,0,2
0,0,0,1,1,1,1,1,0,2
0,1,0,0,1,1,1,1,0,2
0,1,0,1,1,0,1,1,0,2
0,0,1,1,0,1,1,1,0,2
0,0,1,0,1,1,1,1,0,2
0,0,1,1,1,0,1,1,0,2
0,1,1,1,1,1,1,1,0,2
0,0,1,1,1,1,1,1,1,2
0,1,1,1,1,1,1,1,1,2
1,0,0,0,0,0,0,0,0,2
1,0,1,0,0,0,0,0,1,2
1,1,0,0,0,0,0,1,0,2
1,0,0,1,0,0,0,0,1,2
1,1,0,0,0,0,0,0,1,2
1,1,0,0,0,1,0,0,0,2
1,0,0,0,1,0,0,0,1,2
1,0,1,0,0,0,1,0,1,2
1,1,0,1,0,0,0,1,0,2
1,0,0,1,0,1,0,0,1,2
1,1,0,0,0,0,0,1,1,2
1,1,1,0,0,0,0,0,1,2
1,0,1,1,0,0,0,0,1,2
1,0,1,0,0,1,0,0,1,2
1,1,0,0,1,0,0,0,1,2
1,1,0,1,0,0,0,0,1,2
1,1,0,0,0,1,0,0,1,2
1,0,1,0,1,0,1,0,1,2
1,1,0,1,0,1,0,1,0,2
1,0,1,0,0,1,0,1,1,2
1,1,1,1,0,0,0,0,1,2
1,0,1,1,0,0,0,1,1,2
1,1,1,0,0,0,1,0,1,2
1,0,1,1,0,0,1,0,1,2
1,1,0,0,1,0,0,1,1,2
1,1,0,1,0,1,0,0,1,2
1,1,0,1,0,0,0,1,1,2
1,1,1,0,0,1,0,0,1,2
1,1,0,1,1,0,0,0,1,2
1,1,0,0,1,1,0,0,1,2
1,1,0,1,1,1,0,1,0,2
1,0,1,0,1,1,1,0,1,2
1,1,1,0,1,0,1,1,0,2
1,0,1,1,1,1,1,0,0,2
1,0,0,1,1,1,1,1,0,2
1,1,0,0,1,1,1,1,0,2
1,1,0,1,1,0,1,1,0,2
1,0,1,1,0,1,1,1,0,2
1,0,1,0,1,1,1,1,0,2
1,0,1,1,1,0,1,1,0,2
1,1,0,1,1,1,1,1,0,2
1,0,1,1,1,1,1,0,1,2
1,1,1,0,1,1,1,1,0,2
1,0,1,1,1,1,1,1,0,2
1,0,1,1,1,0,1,1,1,2
1,1,1,1,0,1,1,1,0,2
1,1,1,1,1,1,1,1,0,2
1,0,1,1,1,1,1,1,1,2
1,1,1,1,1,1,1,1,1,2
1,a,b,c,d,e,f,g,h,0
#Rule 2
0,2,2,2,2,2,2,2,0,1
0,0,2,2,2,2,2,2,2,1
2,0,2,0,0,0,0,0,2,1
2,2,0,0,0,0,0,2,0,1
2,0,0,2,0,0,0,0,2,1
2,2,0,0,0,0,0,0,2,1
2,2,0,0,0,2,0,0,0,1
2,0,0,0,2,0,0,0,2,1
2,2,0,2,2,2,2,2,0,1
2,0,2,2,2,2,2,0,2,1
2,2,2,0,2,2,2,2,0,1
2,0,2,2,2,2,2,2,0,1
2,0,2,2,2,0,2,2,2,1
2,2,2,2,0,2,2,2,0,1
2,2,2,2,2,2,2,2,2,1
2,a,b,c,d,e,f,g,h,0

@COLORS
1 250 255 250
2 255 250 255

Code: Select all

@RULE Unidim3

Automatically generated by a Lua script.

@TABLE
n_states:3
neighborhood:Moore
symmetries:rotate4reflect

var a={0,1,2}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a
#Rule 1
0,0,0,0,0,0,0,0,1,2
0,1,0,0,0,0,0,0,0,2
0,0,1,0,0,0,0,0,1,2
0,1,0,0,0,1,0,0,0,2
0,0,1,0,0,0,1,0,1,2
0,1,0,1,0,0,0,1,0,2
0,0,0,1,0,1,0,0,1,2
0,1,0,0,0,0,0,1,1,2
0,1,1,0,0,0,0,0,1,2
0,0,1,1,0,0,0,0,1,2
0,0,1,0,0,1,0,0,1,2
0,1,0,0,1,0,0,0,1,2
0,1,0,1,0,0,0,0,1,2
0,1,0,0,0,1,0,0,1,2
0,0,1,0,1,0,1,0,1,2
0,1,0,1,0,1,0,1,0,2
0,0,1,0,0,1,0,1,1,2
0,1,1,1,0,0,0,0,1,2
0,0,1,1,0,0,0,1,1,2
0,1,1,0,0,0,1,0,1,2
0,0,1,1,0,0,1,0,1,2
0,1,0,0,1,0,0,1,1,2
0,1,0,1,0,1,0,0,1,2
0,1,0,1,0,0,0,1,1,2
0,1,1,0,0,1,0,0,1,2
0,1,0,1,1,0,0,0,1,2
0,1,0,0,1,1,0,0,1,2
0,1,0,1,1,1,0,1,0,2
0,0,1,0,1,1,1,0,1,2
0,1,1,0,1,0,1,1,0,2
0,0,1,1,1,1,1,0,0,2
0,0,0,1,1,1,1,1,0,2
0,1,0,0,1,1,1,1,0,2
0,1,0,1,1,0,1,1,0,2
0,0,1,1,0,1,1,1,0,2
0,0,1,0,1,1,1,1,0,2
0,0,1,1,1,0,1,1,0,2
0,1,1,1,1,1,1,1,0,2
0,0,1,1,1,1,1,1,1,2
0,1,1,1,1,1,1,1,1,2
1,0,0,0,0,0,0,0,0,2
1,0,1,0,0,0,0,0,1,2
1,1,0,0,0,0,0,1,0,2
1,0,0,1,0,0,0,0,1,2
1,1,0,0,0,0,0,0,1,2
1,1,0,0,0,1,0,0,0,2
1,0,0,0,1,0,0,0,1,2
1,0,1,0,0,0,1,0,1,2
1,1,0,1,0,0,0,1,0,2
1,0,0,1,0,1,0,0,1,2
1,1,0,0,0,0,0,1,1,2
1,1,1,0,0,0,0,0,1,2
1,0,1,1,0,0,0,0,1,2
1,0,1,0,0,1,0,0,1,2
1,1,0,0,1,0,0,0,1,2
1,1,0,1,0,0,0,0,1,2
1,1,0,0,0,1,0,0,1,2
1,0,1,0,1,0,1,0,1,2
1,1,0,1,0,1,0,1,0,2
1,0,1,0,0,1,0,1,1,2
1,1,1,1,0,0,0,0,1,2
1,0,1,1,0,0,0,1,1,2
1,1,1,0,0,0,1,0,1,2
1,0,1,1,0,0,1,0,1,2
1,1,0,0,1,0,0,1,1,2
1,1,0,1,0,1,0,0,1,2
1,1,0,1,0,0,0,1,1,2
1,1,1,0,0,1,0,0,1,2
1,1,0,1,1,0,0,0,1,2
1,1,0,0,1,1,0,0,1,2
1,1,0,1,1,1,0,1,0,2
1,0,1,0,1,1,1,0,1,2
1,1,1,0,1,0,1,1,0,2
1,0,1,1,1,1,1,0,0,2
1,0,0,1,1,1,1,1,0,2
1,1,0,0,1,1,1,1,0,2
1,1,0,1,1,0,1,1,0,2
1,0,1,1,0,1,1,1,0,2
1,0,1,0,1,1,1,1,0,2
1,0,1,1,1,0,1,1,0,2
1,1,0,1,1,1,1,1,0,2
1,0,1,1,1,1,1,0,1,2
1,1,1,0,1,1,1,1,0,2
1,0,1,1,1,1,1,1,0,2
1,0,1,1,1,0,1,1,1,2
1,1,1,1,0,1,1,1,0,2
1,1,1,1,1,1,1,1,0,2
1,0,1,1,1,1,1,1,1,2
1,1,1,1,1,1,1,1,1,2
1,a,b,c,d,e,f,g,h,0
#Rule 2
0,0,2,2,2,0,2,2,2,1
0,2,2,2,2,2,2,2,0,1
0,0,2,2,2,2,2,2,2,1
2,0,2,0,0,0,0,0,2,1
2,2,0,0,0,0,0,2,0,1
2,0,0,2,0,0,0,0,2,1
2,2,0,0,0,0,0,0,2,1
2,2,0,0,0,2,0,0,0,1
2,0,0,0,2,0,0,0,2,1
2,2,0,2,2,2,2,2,0,1
2,0,2,2,2,2,2,0,2,1
2,2,2,0,2,2,2,2,0,1
2,0,2,2,2,2,2,2,0,1
2,0,2,2,2,0,2,2,2,1
2,2,2,2,0,2,2,2,0,1
2,2,2,2,2,2,2,2,2,1
2,a,b,c,d,e,f,g,h,0

@COLORS
1 255 250 250
2 250 255 255
Last edited by muzik on October 10th, 2017, 8:33 am, edited 2 times in total.

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Alternating rules simulating one-dimensional rules

Post by Saka » September 16th, 2017, 1:54 am

This sounds like a very stupid thing I made. I'll write a script to generate TOTALISTIC (Unless someone wants to do the ridiculously simple thing I requested in the scripts request thread) alter rules.

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Alternating rules simulating one-dimensional rules

Post by Saka » September 16th, 2017, 3:22 am

Here's a script for totalistic alternating rules:

Code: Select all

# altRuleGen.py
# Script to generate alternating totalistic rules.
# By Saka

import golly as g
import os

r = g.getstring("Rule? Enter in format Bx_Sx-Bx_Sx","B3_S23-B36_S23")
rules = r.split("-")
rule1 = rules[0].split("_")
rule2 = rules[1].split("_")
br1 = rule1[0].translate(None, "B")
sr1 = rule1[1].translate(None, "S")
br2 = rule2[0].translate(None, "B")
sr2 = rule2[1].translate(None, "S")

trans1 = {
    "0": ",0,0,0,0,0,0,0,0,2",
    "1": ",1,0,0,0,0,0,0,0,2",
    "2": ",1,1,0,0,0,0,0,0,2",
    "3": ",1,1,1,0,0,0,0,0,2",
    "4": ",1,1,1,1,0,0,0,0,2",
    "5": ",1,1,1,1,1,0,0,0,2",
    "6": ",1,1,1,1,1,1,0,0,2",
    "7": ",1,1,1,1,1,1,1,0,2",
    "8": ",1,1,1,1,1,1,1,1,2"
    }
trans2 = {
    "0": ",0,0,0,0,0,0,0,0,1",
    "1": ",2,0,0,0,0,0,0,0,1",
    "2": ",2,2,0,0,0,0,0,0,1",
    "3": ",2,2,2,0,0,0,0,0,1",
    "4": ",2,2,2,2,0,0,0,0,1",
    "5": ",2,2,2,2,2,0,0,0,1",
    "6": ",2,2,2,2,2,2,0,0,1",
    "7": ",2,2,2,2,2,2,2,0,1",
    "8": ",2,2,2,2,2,2,2,2,1"
    }
def genTransitions(B,S):
    t = []
    for i in range(0,len(B)):
        t.append("0" + trans1[B[i]])
    for i in range(0,len(S)):
        t.append("1" + trans1[S[i]])
    return t

def genTransitions2(B,S):
    t = []
    for i in range(0,len(B)):
        t.append("0" + trans2[B[i]])
    for i in range(0,len(S)):
        t.append("2" + trans2[S[i]])
    return t

def makeRuleTable(ruleName,nStates,neighborhood,symmetries,transitionsList):
    rule = '@RULE '+ruleName+'\n\n'
    table = '@TABLE\n'+'n_states:'+str(nStates)+'\n'+'neighborhood:'+neighborhood+'\n'+'symmetries:'+symmetries+'\n'
    transitions = '\n'
    for i in range(0,len(transitionsList)):
        transitions = transitions+str(transitionsList[i])+'\n'
        i += 1
    return rule+table+transitions

trans = []
trans.append("var a={0,1,2}")
trans.append("var b=a")
trans.append("var c=a")
trans.append("var d=a")
trans.append("var e=a")
trans.append("var f=a")
trans.append("var g=a")
trans.append("var h=a")
trans.append("#Rule 1")
trans.extend(genTransitions(br1,sr1))
trans.append("1,a,b,c,d,e,f,g,h,0")
trans.append("#Rule 2")
trans.extend(genTransitions2(br2,sr2))
trans.append("2,a,b,c,d,e,f,g,h,0")
theRule = makeRuleTable(r,3,"Moore","permute",trans)

def saverule(name,ruleFile):
    ruledir = g.getdir("rules")
    filename = ruledir + name + ".rule"
    
    # Only create a rule file if it doesn't already exist.
    if not os.path.exists(filename):
        try:
            f = open(filename, 'w')
            f.write(ruleFile)
            f.close()
        except:
            g.warn("Unable to create rule table:\n" + filename)

saverule(r,theRule)
g.setrule(r)
g.show("Rule " + r + " succesfuly created")

User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Alternating rules simulating one-dimensional rules

Post by muzik » September 16th, 2017, 8:41 am

...and this is the most boring 1D CA ever:

Code: Select all

@RULE B123_S012-B6_S8

@TABLE
n_states:3
neighborhood:Moore
symmetries:permute

var a={0,1,2}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a
#Rule 1
0,1,0,0,0,0,0,0,0,2
0,1,1,0,0,0,0,0,0,2
0,1,1,1,0,0,0,0,0,2
1,0,0,0,0,0,0,0,0,2
1,1,0,0,0,0,0,0,0,2
1,1,1,0,0,0,0,0,0,2
1,a,b,c,d,e,f,g,h,0
#Rule 2
0,2,2,2,2,2,2,0,0,1
2,2,2,2,2,2,2,2,2,1
2,a,b,c,d,e,f,g,h,0

User avatar
Rhombic
Posts: 1072
Joined: June 1st, 2013, 5:41 pm

Re: Alternating rules simulating one-dimensional rules

Post by Rhombic » September 16th, 2017, 10:32 am

Saka wrote:Here's a script for totalistic alternating rules:

Code: Select all

# altRuleGen.py
# Script to generate alternating totalistic rules.
# By Saka

import golly as g
import os

r = g.getstring("Rule? Enter in format Bx_Sx-Bx_Sx","B3_S23-B36_S23")
rules = r.split("-")
rule1 = rules[0].split("_")
rule2 = rules[1].split("_")
br1 = rule1[0].translate(None, "B")
sr1 = rule1[1].translate(None, "S")
br2 = rule2[0].translate(None, "B")
sr2 = rule2[1].translate(None, "S")

trans1 = {
    "0": ",0,0,0,0,0,0,0,0,2",
    "1": ",1,0,0,0,0,0,0,0,2",
    "2": ",1,1,0,0,0,0,0,0,2",
    "3": ",1,1,1,0,0,0,0,0,2",
    "4": ",1,1,1,1,0,0,0,0,2",
    "5": ",1,1,1,1,1,0,0,0,2",
    "6": ",1,1,1,1,1,1,0,0,2",
    "7": ",1,1,1,1,1,1,1,0,2",
    "8": ",1,1,1,1,1,1,1,1,2"
    }
trans2 = {
    "0": ",0,0,0,0,0,0,0,0,1",
    "1": ",2,0,0,0,0,0,0,0,1",
    "2": ",2,2,0,0,0,0,0,0,1",
    "3": ",2,2,2,0,0,0,0,0,1",
    "4": ",2,2,2,2,0,0,0,0,1",
    "5": ",2,2,2,2,2,0,0,0,1",
    "6": ",2,2,2,2,2,2,0,0,1",
    "7": ",2,2,2,2,2,2,2,0,1",
    "8": ",2,2,2,2,2,2,2,2,1"
    }
def genTransitions(B,S):
    t = []
    for i in range(0,len(B)):
        t.append("0" + trans1[B[i]])
    for i in range(0,len(S)):
        t.append("1" + trans1[S[i]])
    return t

def genTransitions2(B,S):
    t = []
    for i in range(0,len(B)):
        t.append("0" + trans2[B[i]])
    for i in range(0,len(S)):
        t.append("2" + trans2[S[i]])
    return t

def makeRuleTable(ruleName,nStates,neighborhood,symmetries,transitionsList):
    rule = '@RULE '+ruleName+'\n\n'
    table = '@TABLE\n'+'n_states:'+str(nStates)+'\n'+'neighborhood:'+neighborhood+'\n'+'symmetries:'+symmetries+'\n'
    transitions = '\n'
    for i in range(0,len(transitionsList)):
        transitions = transitions+str(transitionsList[i])+'\n'
        i += 1
    return rule+table+transitions

trans = []
trans.append("var a={0,1,2}")
trans.append("var b=a")
trans.append("var c=a")
trans.append("var d=a")
trans.append("var e=a")
trans.append("var f=a")
trans.append("var g=a")
trans.append("var h=a")
trans.append("#Rule 1")
trans.extend(genTransitions(br1,sr1))
trans.append("1,a,b,c,d,e,f,g,h,0")
trans.append("#Rule 2")
trans.extend(genTransitions2(br2,sr2))
trans.append("2,a,b,c,d,e,f,g,h,0")
theRule = makeRuleTable(r,3,"Moore","permute",trans)

def saverule(name,ruleFile):
    ruledir = g.getdir("rules")
    filename = ruledir + name + ".rule"
    
    # Only create a rule file if it doesn't already exist.
    if not os.path.exists(filename):
        try:
            f = open(filename, 'w')
            f.write(ruleFile)
            f.close()
        except:
            g.warn("Unable to create rule table:\n" + filename)

saverule(r,theRule)
g.setrule(r)
g.show("Rule " + r + " succesfuly created")

Code: Select all

x = 22, y = 22, rule = B3_S23-B2_S1
11.B$10.B.B3.B$10.B.B3.B$11.2B4.2B$18.B$19.2B4$18.3B$.2B15.B2.B$B2.B
15.2B$.3B4$.2B$3.B$3.2B4.2B$5.B3.B.B$5.B3.B.B$10.B!
A non-totalistic version could be fun too!
SoL : FreeElectronics : DeadlyEnemies : 6a-ite : Rule X3VI
what is “sesame oil”?

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Alternating rules simulating one-dimensional rules

Post by Saka » September 16th, 2017, 8:14 pm

Rhombic wrote: A non-totalistic version could be fun too!
if you want one, please do the thing I requested in the scripts request. Also, alternating rules in general have their own topic.

fluffykitty
Posts: 1175
Joined: June 14th, 2014, 5:03 pm
Contact:

Re: Alternating rules simulating one-dimensional rules

Post by fluffykitty » September 28th, 2017, 1:23 pm

Why are your later tables using permute symmetry?

User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Alternating rules simulating one-dimensional rules

Post by muzik » October 1st, 2017, 2:54 pm

Managed to "fix" the last two. Here are the old failed ruletables:

Code: Select all

@RULE Unidim2
@TABLE
n_states:3
neighborhood:Moore
symmetries:permute
var a={0,1,2}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a
var i=a
# State 1
0,1,0,0,0,0,0,0,0,2
0,0,1,0,0,0,0,0,0,2
0,1,0,0,0,1,0,0,0,2
0,0,1,0,1,0,0,0,0,2
0,1,1,1,0,0,0,0,0,2
0,1,1,0,1,0,0,0,0,2
0,1,1,0,0,1,0,0,0,2
0,1,1,0,0,0,1,0,0,2
0,1,1,0,0,0,0,1,0,2
0,1,1,0,0,0,0,0,1,2
0,1,0,1,0,1,0,0,0,2
0,1,0,1,0,0,1,0,0,2
0,1,0,0,1,0,1,0,0,2
0,0,1,0,1,0,1,0,0,2
0,1,1,1,1,0,0,0,0,2
0,1,1,1,0,1,0,0,0,2
0,1,1,1,0,0,1,0,0,2
0,1,1,0,1,1,0,0,0,2
0,1,1,0,1,0,1,0,0,2
0,1,1,0,1,0,0,1,0,2
0,1,1,0,1,0,0,0,1,2
0,1,1,0,0,1,1,0,0,2
0,1,1,0,0,1,0,1,0,2
0,1,1,0,0,1,0,0,1,2
0,1,1,0,0,0,1,1,0,2
0,1,0,1,0,1,0,1,0,2
0,0,1,0,1,0,1,0,1,2
0,1,1,1,1,1,0,0,0,2
0,1,1,1,1,0,1,0,0,2
0,1,1,1,1,0,0,1,0,2
0,1,1,1,1,0,0,0,1,2
0,1,1,1,0,1,1,0,0,2
0,1,1,1,0,1,0,1,0,2
0,1,1,0,1,1,1,0,0,2
0,1,1,0,1,1,0,1,0,2
0,1,1,0,1,0,1,1,0,2
0,1,1,0,1,0,1,0,1,2
0,1,1,1,1,1,1,1,0,2
0,1,1,1,1,1,1,0,1,2
0,1,1,1,1,1,1,1,1,2
1,0,0,0,0,0,0,0,0,2
1,1,1,0,0,0,0,0,0,2
1,1,0,1,0,0,0,0,0,2
1,1,0,0,1,0,0,0,0,2
1,1,0,0,0,1,0,0,0,2
1,0,1,0,1,0,0,0,0,2
1,0,1,0,0,0,1,0,0,2
1,1,1,1,0,0,0,0,0,2
1,1,1,0,1,0,0,0,0,2
1,1,1,0,0,1,0,0,0,2
1,1,1,0,0,0,1,0,0,2
1,1,1,0,0,0,0,1,0,2
1,1,1,0,0,0,0,0,1,2
1,1,0,1,0,1,0,0,0,2
1,1,0,1,0,0,1,0,0,2
1,1,0,0,1,0,1,0,0,2
1,0,1,0,1,0,1,0,0,2
1,1,1,1,1,0,0,0,0,2
1,1,1,1,0,1,0,0,0,2
1,1,1,1,0,0,1,0,0,2
1,1,1,0,1,1,0,0,0,2
1,1,1,0,1,0,1,0,0,2
1,1,1,0,1,0,0,1,0,2
1,1,1,0,1,0,0,0,1,2
1,1,1,0,0,1,1,0,0,2
1,1,1,0,0,1,0,1,0,2
1,1,1,0,0,1,0,0,1,2
1,1,1,0,0,0,1,1,0,2
1,1,0,1,0,1,0,1,0,2
1,0,1,0,1,0,1,0,1,2
1,1,1,1,1,1,0,0,0,2
1,1,1,1,1,0,1,0,0,2
1,1,1,1,1,0,0,1,0,2
1,1,1,1,1,0,0,0,1,2
1,1,1,1,0,1,1,0,0,2
1,1,1,1,0,1,0,1,0,2
1,1,1,0,1,1,1,0,0,2
1,1,1,0,1,1,0,1,0,2
1,1,1,0,1,0,1,1,0,2
1,1,1,0,1,0,1,0,1,2
1,1,1,1,1,1,1,0,0,2
1,1,1,1,1,1,0,1,0,2
1,1,1,1,1,0,1,1,0,2
1,1,1,1,1,0,1,0,1,2
1,1,1,1,0,1,1,1,0,2
1,1,1,0,1,1,1,0,1,2
1,1,1,1,1,1,1,1,0,2
1,1,1,1,1,1,1,0,1,2
1,1,1,1,1,1,1,1,1,2
# State 2
0,2,2,2,2,2,2,2,0,1
0,2,2,2,2,2,2,0,2,1
2,2,2,0,0,0,0,0,0,1
2,2,0,2,0,0,0,0,0,1
2,2,0,0,2,0,0,0,0,1
2,2,0,0,0,2,0,0,0,1
2,0,2,0,2,0,0,0,0,1
2,0,2,0,0,0,2,0,0,1
2,2,2,2,2,2,2,0,0,1
2,2,2,2,2,2,0,2,0,1
2,2,2,2,2,0,2,2,0,1
2,2,2,2,2,0,2,0,2,1
2,2,2,2,0,2,2,2,0,1
2,2,2,0,2,2,2,0,2,1
2,2,2,2,2,2,2,2,2,1

#
a,b,c,d,e,f,g,h,i,0

@COLORS
1 255 255 255
2 255 255 255

Code: Select all

@RULE Unidim3
@TABLE
n_states:3
neighborhood:Moore
symmetries:permute
var a={0,1,2}
var b=a
var c=a
var d=a
var e=a
var f=a
var g=a
var h=a
var i=a
# State 1
0,1,0,0,0,0,0,0,0,2
0,0,1,0,0,0,0,0,0,2
0,1,0,0,0,1,0,0,0,2
0,0,1,0,1,0,0,0,0,2
0,1,1,1,0,0,0,0,0,2
0,1,1,0,1,0,0,0,0,2
0,1,1,0,0,1,0,0,0,2
0,1,1,0,0,0,1,0,0,2
0,1,1,0,0,0,0,1,0,2
0,1,1,0,0,0,0,0,1,2
0,1,0,1,0,1,0,0,0,2
0,1,0,1,0,0,1,0,0,2
0,1,0,0,1,0,1,0,0,2
0,0,1,0,1,0,1,0,0,2
0,1,1,1,1,0,0,0,0,2
0,1,1,1,0,1,0,0,0,2
0,1,1,1,0,0,1,0,0,2
0,1,1,0,1,1,0,0,0,2
0,1,1,0,1,0,1,0,0,2
0,1,1,0,1,0,0,1,0,2
0,1,1,0,1,0,0,0,1,2
0,1,1,0,0,1,1,0,0,2
0,1,1,0,0,1,0,1,0,2
0,1,1,0,0,1,0,0,1,2
0,1,1,0,0,0,1,1,0,2
0,1,0,1,0,1,0,1,0,2
0,0,1,0,1,0,1,0,1,2
0,1,1,1,1,1,0,0,0,2
0,1,1,1,1,0,1,0,0,2
0,1,1,1,1,0,0,1,0,2
0,1,1,1,1,0,0,0,1,2
0,1,1,1,0,1,1,0,0,2
0,1,1,1,0,1,0,1,0,2
0,1,1,0,1,1,1,0,0,2
0,1,1,0,1,1,0,1,0,2
0,1,1,0,1,0,1,1,0,2
0,1,1,0,1,0,1,0,1,2
0,1,1,1,1,1,1,1,0,2
0,1,1,1,1,1,1,0,1,2
0,1,1,1,1,1,1,1,1,2
1,0,0,0,0,0,0,0,0,2
1,1,1,0,0,0,0,0,0,2
1,1,0,1,0,0,0,0,0,2
1,1,0,0,1,0,0,0,0,2
1,1,0,0,0,1,0,0,0,2
1,0,1,0,1,0,0,0,0,2
1,0,1,0,0,0,1,0,0,2
1,1,1,1,0,0,0,0,0,2
1,1,1,0,1,0,0,0,0,2
1,1,1,0,0,1,0,0,0,2
1,1,1,0,0,0,1,0,0,2
1,1,1,0,0,0,0,1,0,2
1,1,1,0,0,0,0,0,1,2
1,1,0,1,0,1,0,0,0,2
1,1,0,1,0,0,1,0,0,2
1,1,0,0,1,0,1,0,0,2
1,0,1,0,1,0,1,0,0,2
1,1,1,1,1,0,0,0,0,2
1,1,1,1,0,1,0,0,0,2
1,1,1,1,0,0,1,0,0,2
1,1,1,0,1,1,0,0,0,2
1,1,1,0,1,0,1,0,0,2
1,1,1,0,1,0,0,1,0,2
1,1,1,0,1,0,0,0,1,2
1,1,1,0,0,1,1,0,0,2
1,1,1,0,0,1,0,1,0,2
1,1,1,0,0,1,0,0,1,2
1,1,1,0,0,0,1,1,0,2
1,1,0,1,0,1,0,1,0,2
1,0,1,0,1,0,1,0,1,2
1,1,1,1,1,1,0,0,0,2
1,1,1,1,1,0,1,0,0,2
1,1,1,1,1,0,0,1,0,2
1,1,1,1,1,0,0,0,1,2
1,1,1,1,0,1,1,0,0,2
1,1,1,1,0,1,0,1,0,2
1,1,1,0,1,1,1,0,0,2
1,1,1,0,1,1,0,1,0,2
1,1,1,0,1,0,1,1,0,2
1,1,1,0,1,0,1,0,1,2
1,1,1,1,1,1,1,0,0,2
1,1,1,1,1,1,0,1,0,2
1,1,1,1,1,0,1,1,0,2
1,1,1,1,1,0,1,0,1,2
1,1,1,1,0,1,1,1,0,2
1,1,1,0,1,1,1,0,1,2
1,1,1,1,1,1,1,1,0,2
1,1,1,1,1,1,1,0,1,2
1,1,1,1,1,1,1,1,1,2
# State 2
0,2,2,0,2,2,2,0,2,1
0,2,2,2,2,2,2,2,0,1
0,2,2,2,2,2,2,0,2,1
2,2,2,0,0,0,0,0,0,1
2,2,0,2,0,0,0,0,0,1
2,2,0,0,2,0,0,0,0,1
2,2,0,0,0,2,0,0,0,1
2,0,2,0,2,0,0,0,0,1
2,0,2,0,0,0,2,0,0,1
2,2,2,2,2,2,2,0,0,1
2,2,2,2,2,2,0,2,0,1
2,2,2,2,2,0,2,2,0,1
2,2,2,2,2,0,2,0,2,1
2,2,2,2,0,2,2,2,0,1
2,2,2,0,2,2,2,0,2,1
2,2,2,2,2,2,2,2,2,1

#
a,b,c,d,e,f,g,h,i,0

@COLORS
1 255 255 255
2 255 255 255
Also, turns out Rule 2 is possibly identical to B02-ci6/S1 in 1D.

Would be great if apgsearch could support alternating rules, so I could see if Rule 1 actually holds anything of value.

User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Alternating rules simulating one-dimensional rules

Post by muzik » October 10th, 2017, 8:33 am

Seems as though Unidim1 is simulating rule 2435204760 (correct me if I'm wrong).

...and rule 2 is rule 2301904440.

...and rule 3 is rule 3115730616.

User avatar
muzik
Posts: 5612
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Alternating rules simulating one-dimensional rules

Post by muzik » January 26th, 2020, 11:24 am

All that's needed for explosive growth in rule 2301904440:

Code: Select all

x = 3, y = 1, rule = Unidim2
A.A!
[[ STEP 2 NOTHROTTLE ]]
Same deal for 3115730616:

Code: Select all

x = 3, y = 1, rule = Unidim3
A.A!
[[ STEP 2 NOTHROTTLE ]]

Post Reply