One-dimensional cellular automata: Difference between revisions

Content added Content deleted
Line 572: Line 572:
..##.....#..........
..##.....#..........
..##................</lang>
..##................</lang>
=={{header|D}}==
<lang d>import std.stdio, std.algorithm;

void main() {
enum ngenerations = 10;
enum initial = "0011101101010101001000";
enum table = "00010110";

auto A = new char[initial.length + 2];
A[] = '0';
auto B = A.dup;
A[1 .. $-1] = initial;

foreach (_; 0 .. ngenerations) {
foreach (i; 1 .. A.length-1) {
write(A[i] == '0' ? '_' : '#');
int val = (A[i-1]-'0' << 2) | (A[i]-'0' << 1) | (A[i+1]-'0');
B[i] = table[val];
}
swap(A, B);
writeln();
}
}</lang>
Output:
<pre>__###_##_#_#_#_#__#___
__#_#####_#_#_#_______
___##___##_#_#________
___##___###_#_________
___##___#_##__________
___##____###__________
___##____#_#__________
___##_____#___________
___##_________________
___##_________________</pre>


=={{header|E}}==
=={{header|E}}==