Jump to content

Elementary cellular automaton: Difference between revisions

m
Line 1,193:
=={{header|Julia}}==
<lang julia>
const lines = 910
const start = ".........#........."
const rules = [90, 30, 14]
Line 1,199:
rule2poss(rule) = [rule & (1 << (i - 1)) != 0 for i in 1:8]
 
cells2bitsetcells2bools(cells) = [cells[i] == '#' for i in 1:length(cells)]
 
bitset2cellsbools2cells(bset) = prod([bset[i] ? "#" : "." for i in 1:length(bset)])
 
transform(bset, ruleposs) =
Line 1,208:
for i in 2:length(bset)-1]), false)
 
const startset = cells2bitsetcells2bools(start)
 
for rul in rules
Line 1,215:
rp = rule2poss(rul)
for i in 1:lines
println(bitset2cellsbools2cells(bset[2:end-1])) # unwrap ends
bset = transform(bset, rp)
end
Line 1,230:
..#.#.#.#.#.#.#.#..
.#...............#.
#.#.............#.#
 
Using Rule 30:
Line 1,241 ⟶ 1,242:
..######..####.##..
.#.....###...#..##.
###...#..##.####.##
 
Using Rule 14:
Line 1,252 ⟶ 1,254:
...............##..
................##.
.................##
</pre>
 
4,105

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.