#!/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;
};