One-dimensional cellular automata: Difference between revisions
Content added Content deleted
m (→[[One-dimensional cellular automata#ALGOL 68]]: fix pre tag) |
|||
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}}== |