Elementary cellular automaton/Infinite length: Difference between revisions
Content added Content deleted
(Added Go) |
|||
Line 623: | Line 623: | ||
░▲░▲░▲░▲░░░░░░░░░░░░░░░░░░░░░░░░░▲░▲░▲░▲░ |
░▲░▲░▲░▲░░░░░░░░░░░░░░░░░░░░░░░░░▲░▲░▲░▲░ |
||
^C |
^C |
||
</pre> |
|||
=={{header|Phix}}== |
|||
Uses 0-expansion either side |
|||
<lang Phix>string s = ".#.", |
|||
t=s, r = "........" |
|||
integer rule = 18, k, l = length(s), w = 0 |
|||
for i=1 to 8 do |
|||
r[i] = iff(mod(rule,2)?'#':'.') |
|||
rule = floor(rule/2) |
|||
end for |
|||
for i=0 to 25 do |
|||
?repeat(' ',floor((55-length(s))/2))&s |
|||
for j=1 to l do |
|||
k = (s[iff(j=1?l:j-1)]='#')*4 |
|||
+ (s[ j ]='#')*2 |
|||
+ (s[iff(j=l?1:j+1)]='#')+1 |
|||
t[j] = r[k] |
|||
end for |
|||
if t[1]='#' then t = '.'&t end if |
|||
if t[$]='#' then t = t&'.' end if |
|||
l = length(t) |
|||
s = t |
|||
end for</lang> |
|||
{{out}} |
|||
<pre> |
|||
" .#." |
|||
" .#.#." |
|||
" .#...#." |
|||
" .#.#.#.#." |
|||
" .#.......#." |
|||
" .#.#.....#.#." |
|||
" .#...#...#...#." |
|||
" .#.#.#.#.#.#.#.#." |
|||
" .#...............#." |
|||
" .#.#.............#.#." |
|||
" .#...#...........#...#." |
|||
" .#.#.#.#.........#.#.#.#." |
|||
" .#.......#.......#.......#." |
|||
" .#.#.....#.#.....#.#.....#.#." |
|||
" .#...#...#...#...#...#...#...#." |
|||
" .#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#." |
|||
" .#...............................#." |
|||
" .#.#.............................#.#." |
|||
" .#...#...........................#...#." |
|||
" .#.#.#.#.........................#.#.#.#." |
|||
" .#.......#.......................#.......#." |
|||
" .#.#.....#.#.....................#.#.....#.#." |
|||
" .#...#...#...#...................#...#...#...#." |
|||
" .#.#.#.#.#.#.#.#.................#.#.#.#.#.#.#.#." |
|||
" .#...............#...............#...............#." |
|||
" .#.#.............#.#.............#.#.............#.#." |
|||
</pre> |
</pre> |
||