Elementary cellular automaton/Infinite length: Difference between revisions

julia example
(julia example)
Line 442:
 
Looks like a [[Sierpinski_triangle|Sierpinski triangle]]
 
=={{header|Julia}}==
{{trans|Python}}
<lang julia>notcell(cell) = (cell == '1') ? '0' : '1'
 
function ecainfinite(cells, rule, n)
celllength = length(cells)
rulebits = string(rule, base = 2, pad = 8)
neighbors2next = Dict(string(n -1, base=2, pad=3) => rulebits[n] for n in 1:8)
ret = String[]
for i in 1:n
push!(ret, cells)
cells = notcell(cells[1:1])^2 * cells * notcell(cells[end])^2 # Extend/pad ends
cells = join([neighbors2next[cells[i:i+2]] for i in 1:length(cells)-2], "")
end
ret
end
 
function testinfcells(lines::Integer)
for rule in [90, 30]
println("\nRule: $rule")
s = ecainfinite("1", rule, lines)
for i in 1:lines
println("$i: ", " "^(lines - i), replace(replace(s[i], "0" => "."), "1" => "#"))
end
end
end
 
testinfcells(25)
</lang>{{out}}
<pre>
Rule: 90
1: #
2: .##
3: #.###
4: .#.#.##
5: #.....###
6: .##...##.##
7: #.###.###.###
8: .#.#.#.#.#.#.##
9: #.............###
10: .##...........##.##
11: #.###.........###.###
12: .#.#.##.......##.#.#.##
13: #.....###.....###.....###
14: .##...##.##...##.##...##.##
15: #.###.###.###.###.###.###.###
16: .#.#.#.#.#.#.#.#.#.#.#.#.#.#.##
17: #.............................###
18: .##...........................##.##
19: #.###.........................###.###
20: .#.#.##.......................##.#.#.##
21: #.....###.....................###.....###
22: .##...##.##...................##.##...##.##
23: #.###.###.###.................###.###.###.###
24: .#.#.#.#.#.#.##...............##.#.#.#.#.#.#.##
25: #.............###.............###.............###
 
Rule: 30
1: #
2: .##
3: #####
4: .....##
5: ##....###
6: ..##...#.##
7: ##.###...####
8: ..###.##..#..##
9: ##.#.#####..#.###
10: ..##.##...##..##.##
11: ##.######..###.######
12: ..###....##.#.###....##
13: ##.#.##...###.##.##...###
14: ..##.####..#.########..#.##
15: ##.####..##..##......##..####
16: ..###..##.###.###.....###.#..##
17: ##.#.##.####.###.##....#.##.#.###
18: ..##.#####..###.#####....####.##.##
19: ##.####...##.#.###...##...#..########
20: ..###..##..###.##.##..###...#.#......##
21: ##.#.##.###.#.########.#.##...#.#.....###
22: ..##.#####.##.##......##.####...#.#....#.##
23: ##.####...########.....####..##...#.#....####
24: ..###..##..#......##....#..##.###...#.#...#..##
25: ##.#.##.###..#.....###....#.####.##...#.#...#.###
</pre>
 
=={{header|Kotlin}}==
4,103

edits