#!/usr/bin/ruby
#
## https://rosettacode.org/wiki/One-dimensional_cellular_automata
#
var seq = "_###_##_#_#_#_#__#__";
var x = '';
loop {
seq.tr!('01', '_#');
say seq;
seq.tr!('_#', '01');
seq.gsub!(/(?<=(.))(.)(?=(.))/, {|s1,s2,s3| s1 == s3 ? (s1 ? (1 - s2.to_i) : 0) : s2});
(x != seq) && (x = seq) || break;
};