Skip to content

Instantly share code, notes, and snippets.

@tosik
Created August 14, 2018 14:01
Show Gist options
  • Save tosik/984caee44bacc61fa2e35b733a2529a8 to your computer and use it in GitHub Desktop.
Save tosik/984caee44bacc61fa2e35b733a2529a8 to your computer and use it in GitHub Desktop.
generate all golly non-totalistic rules
table = {
"1" => "ce",
"2" => "cekain",
"3" => "cekainyqjr",
"4" => "cekainyqjrtwz",
"5" => "cekainyqjr",
"6" => "cekain",
"7" => "ce"
}
a = table.map {|kv|
num = kv[0]
letters = kv[1].split("").push("")
patterns = (1..13).map {|len|
letters.combination(len).map {|combi|
combi.join("")
}
}.uniq.map {|letter|
letter.product([num]).map {|elem|
elem.reverse.join
}
}
patterns.flatten.uniq
}
sizes = (0..table.size-1).map {|t|
a[t].push("").size
}
b = []
(0..sizes[0]-1).each do |s1|
(0..sizes[1]-1).each do |s2|
(0..sizes[2]-1).each do |s3|
(0..sizes[3]-1).each do |s4|
(0..sizes[4]-1).each do |s5|
(0..sizes[5]-1).each do |s6|
(0..sizes[6]-1).each do |s7|
b.push "#{a[0][s1]}#{a[1][s2]}#{a[2][s3]}#{a[3][s4]}#{a[4][s5]}#{a[5][s6]}#{a[6][s7]}\n"
end
end
end
end
end
end
end
b.each do |bb1|
b.each do |bb2|
print "B#{bb1}/"
print "S#{bb2}\n"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment