simple cellular automata generator
using "babaabab" as the argument gives a nice pseudorandom output and you'll see triangle forms of 'b's appear in the chaos

"abbaabba" will also produce right-triangles, but with 'a's
"abbabbab" will produce clustered triangle 'b's
using System;
using System.Threading;
namespace TimedComp
{
class MainClass
{
public static void Main (string[] args)
{
Foo foo = new Foo();
foo.run(args);
}
}
class Foo
{
private static bool RUN = true;
private string prev = "",cur = "";
private int colLim = 80;
private Timer timer;
public void run(string[] args)
{
timer = new Timer(this.OnTick,null,1000*3600,0);
prev = "aaaaaabaaaaaa";
while(RUN)
{
for(int i = 0; i < prev.Length; i++)
{
if(i+1 > prev.Length-1)
{
cur += prev[prev.Length-1];
break;
}
if(i > 0){
string str = "" + prev[i-1] + prev[i] + prev[i+1];
if(str == "aaa")
cur = cur.Insert(i,""+args[0][0]);
if(str == "aab")
cur = cur.Insert(i,""+args[0][1]);
if(str == "aba")
cur = cur.Insert(i,""+args[0][2]);
if(str == "abb")
cur = cur.Insert(i,""+args[0][3]);
if(str == "baa")
cur = cur.Insert(i,""+args[0][4]);
if(str == "bab")
cur = cur.Insert(i,""+args[0][5]);
if(str == "bba")
cur = cur.Insert(i,""+args[0][6]);
if(str == "bbb")
cur = cur.Insert(i,""+args[0][7]);
}
else
{
string str = "" + prev[i] + prev[i+1];
if(str == "aa")
cur = cur.Insert(i,""+args[0][0]);
if(str == "ab")
cur = cur.Insert(i,""+args[0][1]);
if(str == "ba")
cur = cur.Insert(i,""+args[0][2]);
if(str == "bb")
cur = cur.Insert(i,""+args[0][3]);
}
}
prev = cur.Substring(0, cur.Length > colLim ? colLim : cur.Length);
Console.WriteLine(prev);
}
}
private void OnTick(object obj)
{
RUN = false;
}
}
}
here is some sample output of abbabbab with one triangle highlighted:
bbbbabbbbbbbababbbbbbbabababababbbbbbbbbbbabbbbbbabababbbbbbbabbbbbbababbbabaaba
abbababbbbbabbbabbbbbabbbbbbbbbabbbbbbbbbababbbbabbbbbabbbbbababbbbabbbababbbbbb
baabbbabbbababababbbababbbbbbbababbbbbbbabbbabbababbbababbbabbbabbabababbbabbbba
bbbababababbbbbbbababbbabbbbbabbbabbbbbabababaabbbababbbababababaabbbbbabababbab
ababbbbbbbabbbbbabbbabababbbababababbbabbbbbbbbababbbababbbbbbbbbbabbbabbbbbaabb
bbbabbbbbababbbabababbbbbababbbbbbbabababbbbbbabbbababbbabbbbbbbbababababbbabbaa
abababbbabbbababbbbbabbbabbbabbbbbabbbbbabbbbabababbbabababbbbbbabbbbbbbababaabb
bbbbbababababbbabbbababababababbbababbbababbabbbbbababbbbbabbbbababbbbbabbbbbbaa
abbbabbbbbbbababababbbbbbbbbbbababbbababbbaababbbabbbabbbababbabbbabbbababbbbabb
babababbbbbabbbbbbbabbbbbbbbbabbbababbbababbbbababababababbbaabababababbbabbabaa
bbbbbbabbbababbbbbababbbbbbbabababbbababbbabbabbbbbbbbbbbababbbbbbbbbbababaabbbb
abbbbabababbbabbbabbbabbbbbabbbbbababbbababaababbbbbbbbbabbbabbbbbbbbabbbbbbabbb
babbabbbbbabababababababbbababbbabbbababbbbbbbbabbbbbbbababababbbbbbababbbbababa
bbaababbba
bbbbbbbbbbbbbababbbababababbbabbbbbbababbbbbabbbbbbbabbbbabbbabbabbbbb
aabbbbababa
bbbbbbbbbbbabbbababbbbbbbabababbbbabbbabbbababbbbbababbabababaababbbb
ababbabbbbba
bbbbbbbbbabababbbabbbbbabbbbbabbabababababbbabbbabbbaabbbbbbbbbbabba
bbbaababbbaba
bbbbbbbabbbbbabababbbababbbabaabbbbbbbbbababababababbabbbbbbbbabaaa
ababbbbababbba
bbbbbababbbabbbbbababbbababbbbabbbbbbbabbbbbbbbbbbaababbbbbbabbbab
bbbabbabbbababa
bbbabbbabababbbabbbababbbabbababbbbbababbbbbbbbbabbbbabbbbabababa
ababaabababbbbba
babababbbbbababababbbababaabbbabbbabbbabbbbbbbababbababbabbbbbbb
bbbbbbbbbbabbbabbbbbbbabbbabbbbbbbababbbbbbabababababababbbbbabbbaabbbaababbbbba
abbbbbbbbababababbbbbababababbbbbabbbabbbbabbbbbbbbbbbbbabbbabababbababbbbabbbab
babbbbbbabbbbbbbabbbabbbbbbbabbbababababbababbbbbbbbbbbabababbbbbaabbbabbabababa
bbabbbbababbbbbababababbbbbabababbbbbbbaabbbabbbbbbbbbabbbbbabbbabbababaabbbbbbb
aababbabbbabbbabbbbbbbabbbabbbbbabbbbbabbabababbbbbbbababbbabababaabbbbbbabbbbbb
abbbaababababababbbbbababababbbababbbabaabbbbbabbbbbabbbababbbbbbbbabbbbababbbba
bababbbbbbbbbbbbabbbabbbbbbbababbbababbbbabbbababbbabababbbabbbbbbababbabbbabbaa
bbbbabbbbbbbbbbababababbbbbabbbababbbabbabababbbababbbbbabababbbbabbbaabababaabb
abbababbbbbbbbabbbbbbbabbbabababbbababaabbbbbababbbabbbabbbbbabbabababbbbbbbbbab
baabbbabbbbbbababbbbbabababbbbbababbbbbbabbbabbbabababababbbabaabbbbbabbbbbbbaba
bbbabababbbbabbbabbbabbbbbabbbabbbabbbbabababababbbbbbbbbababbbbabbbababbbbbabbb
ababbbbbabbababababababbbababababababbabbbbbbbbbabbbbbbbabbbabbabababbbabbbababb
bbbabbbabaabbbbbbbbbbbababbbbbbbbbbbaababbbbbbbababbbbbabababaabbbbbababababbbaa
ababababbbbabbbbbbbbbabbbabbbbbbbbbabbbbabbbbbabbbabbbabbbbbbbbabbbabbbbbbbababb
bbbbbbbabbababbbbbbbababababbbbbbbababbababbbababababababbbbbbababababbbbbabbbaa
abbbbbabaabbbabbbbbabbbbbbbabbbbbabbbaabbbababbbbbbbbbbbabbbbabbbbbbbabbbabababb
babbbabbbbabababbbababbbbbababbbabababbababbbabbbbbbbbbababbababbbbbabababbbbbaa
bbabababbabbbbbababbbabbbabbbababbbbbaabbbabababbbbbbbabbbaabbbabbbabbbbbabbbabb
aabbbbbaababbbabbbababababababbbabbbabbababbbbbabbbbbabababbabababababbbabababab
sample output of abbaabba with one triangle highlighted:
bbabaaabbbbbbaaabbaabbababaaabaabaaabbbbbaabbaabbabbababbbababaaabababbbbbabbbab
abbbaabaaaaabaababababbbbbaabbabbaabaaaabababababbabbbbaabbbbbaabbbbbaaaabbaabbb
baababbaaaabbabbbbbbbaaaabababbababbaaabbbbbbbbbabbaaababaaaababaaaabaaabababaaa
babbbabaaababbaaaaaabaaabbbbbabbbbabaabaaaaaaaabbabaabbbbaaabbbbaaabbaabbbbbbaab
bbaabbbaabbbabaaaaabbaabaaaabbaaabbbabbaaaaaaababbbabaaabaabaaabaabababaaaaababb
ababaababaabbbaaaabababbaaababaabaabbabaaaaaabbbaabbbaabbabbaabbabbbbbbaaaabbbab
bbbbabbbbabaabaaabbbbbabaabbbbabbababbbaaaaabaababaabababbabababbaaaaabaaabaabba
aaabbaaabbbabbaabaaaabbbabaaabbabbbbaabaaaabbabbbbabbbbbabbbbbbabaaaabbaabbababb
aababaabaabbababbaaabaabbbaababbaaababbaaababbaaabbaaaabbaaaaabbbaaababababbbbaa
abbbbabbababbbbabaabbabaababbbabaabbbabaabbbabaababaaababaaaabaabaabbbbbbbaaabaa
baaabbabbbbaaabbbababbbabbbaabbbabaabbbabaabbbabbbbaabbbbaaabbabbabaaaaaabaabbaa
baababbaaabaabaabbbbaabbaababaabbbabaabbbabaabbaaababaaabaababbabbbaaaaabbababab
babbbabaabbabbabaaababababbbbabaabbbabaabbbababaabbbbaabbabbbabbaabaaaababbbbbbb
bbaabbbababbabbbaabbbbbbbaaabbbabaabbbabaabbbbbabaaabababbaabbababbaaabbbaaaaaab
ababaabbbbabbaababaaaaaabaabaabbbabaabbbabaaaabbbaabbbbbabababbbbabaabaabaaaaabb
bbbbabaaabbababbbbaaaaabbabbabaabbbabaabbbaaabaababaaaabbbbbbaaabbbabbabbaaaabaa
aaabbbaababbbbaaabaaaababbabbbabaabbbabaabaabbabbbbaaabaaaaabaabaabbabbabaaabbab
aabaababbbaaabaabbaaabbbabbaabbbabaabbbabbababbaaabaabbaaaabbabbababbabbbaababba
abbabbbaabaabbababaabaabbababaabbbabaabbabbbbabaabbababaaababbabbbbabbaababbbaba
babbaababbababbbbbabbababbbbbabaabbbababbaaabbbababbbbbaabbbabbaaabbababbbaabbba
bbababbbabbbbaaaabbabbbbaaaabbbabaabbbbabaabaabbbbaaaababaabbabaababbbbaababaabb
abbbbaabbaaabaaababbaaabaaabaabbbabaaabbbabbabaaabaaabbbbababbbabbbaaababbbbabab
baaabababaabbaabbbabaabbaabbabaabbbaabaabbabbbaabbaabaaabbbbaabbaabaabbbaaabbbba
baabbbbbbabababaabbbababababbbabaababbababbaababababbaabaaababababbabaabaabaaabb
babaaaaabbbbbbbabaabbbbbbbbaabbbabbbabbbbababbbbbbbababbaabbbbbbbabbbabbabbaabab
bbbaaaabaaaaaabbbabaaaaaaababaabbaabbaaabbbbaaaaaabbbbababaaaaaabbaabbabbababbbb
aabaaabbaaaaabaabbbaaaaaabbbbababababaabaaabaaaaabaaabbbbbaaaaababababbabbbbaaab
abbaababaaaabbabaabaaaaabaaabbbbbbbbbabbaabbaaaabbaabaaaabaaaabbbbbbbabbaaabaaba
bababbbbaaababbbabbaaaabbaab
aaaaaaaabbabababaaabababbaaabbaaabaaaaaabbabaabbabba
bbbbaaabaabbbaabbabaaabababb
aaaaaaababbbbbbbaabbbbbabaababaabbaaaaababbbababbabb
aaabaabbabaabababbbaabbbbbab
aaaaaabbbaaaaaababaaaabbbabbbbababaaaabbbaabbbbabbab
aabbababbbabbbbbaababaaaabbb
aaaaabaabaaaaabbbbaaabaabbaaabbbbbaaabaababaaabbabba
ababbbbaabbaaaababbbbaaabaab
aaaabbabbaaaabaaabaabbababaabaaaabaabbabbbbaababbaba
bbbaaabababaaabbbaaabaabbabb
aaababbabaaabbaabbababbbbbabbaaabbababbaaababbbabbba
aabaabbbbbbaabaabaabbababbab
aabbbabbbaababababbbbaaaabbabaababbbbabaabbbaabbaabb
abbabaaaaababbabbababbbbabbb
abaabbaababbbbbbbaaabaaababbbabbbaaabbbabaababababaa
babbbaaaabbbabbabbbbaaabbaabbbabababbbaaaaaabaabbaabbbaabbaabaabaabbbabbbbbbbbaa
bbaabaaabaabbabbaaabaabababaabbbbbbaabaaaaabbabababaababababbabbabaabbaaaaaaabab
ababbaabbababbabaabbabbbbbbabaaaaababbaaaababbbbbbbabbbbbbbabbabbbababaaaaaabbbb
Im not sure if mine meets the initial criteria 100% though, as my sample will start producing this output almost instantly, however the pseudorandomness of some of the rules you can give it will make the output fairly unique during each calculated row, so to get the output at the hour mark takes running it for an hour (assuming same number of rows were created).
Edited by Net Gnome, 12 September 2012 - 04:19 AM.