Elementary cellular automaton: Difference between revisions
Content added Content deleted
m (→{{header|Ada}}: Fixed typo (independant→ independent)) |
(→{{header|Julia}}: just swapped the signs, so the output is now correct (was mirror image)) |
||
Line 1,560: | Line 1,560: | ||
const start = ".........#........." |
const start = ".........#........." |
||
const rules = [90, 30, 14] |
const rules = [90, 30, 14] |
||
rule2poss(rule) = [rule & (1 << (i - 1)) != 0 for i in 1:8] |
rule2poss(rule) = [rule & (1 << (i - 1)) != 0 for i in 1:8] |
||
cells2bools(cells) = [cells[i] == '#' for i in 1:length(cells)] |
cells2bools(cells) = [cells[i] == '#' for i in 1:length(cells)] |
||
bools2cells(bset) = prod([bset[i] ? "#" : "." for i in 1:length(bset)]) |
bools2cells(bset) = prod([bset[i] ? "#" : "." for i in 1:length(bset)]) |
||
function transform(bset, ruleposs) |
function transform(bset, ruleposs) |
||
newbset = map(x->ruleposs[x], |
newbset = map(x->ruleposs[x], |
||
[bset[i |
[bset[i - 1] * 4 + bset[i] * 2 + bset[i + 1] + 1 |
||
for i in 2:length(bset)-1]) |
for i in 2:length(bset)-1]) |
||
vcat(newbset[end], newbset, newbset[1]) |
vcat(newbset[end], newbset, newbset[1]) |
||
end |
end |
||
const startset = cells2bools(start) |
const startset = cells2bools(start) |
||
for rul in rules |
for rul in rules |
||
println("\nUsing Rule $rul:") |
println("\nUsing Rule $rul:") |
||
Line 1,601: | Line 1,601: | ||
.........#......... |
.........#......... |
||
........###........ |
........###........ |
||
.......#.. |
.......##..#....... |
||
......#### |
......##.####...... |
||
.....# |
.....##..#...#..... |
||
.... |
....##.####.###.... |
||
...#..#....#.. |
...##..#....#..#... |
||
..######..#### |
..##.####..######.. |
||
.#.....###... |
.##..#...###.....#. |
||
##.####.##..#...### |
|||
Using Rule 14: |
Using Rule 14: |
||
.........#......... |
.........#......... |
||
........##......... |
|||
.......... |
.......##.......... |
||
........... |
......##........... |
||
............ |
.....##............ |
||
............. |
....##............. |
||
.............. |
...##.............. |
||
............... |
..##............... |
||
................ |
.##................ |
||
................. |
##................. |
||
</pre> |
</pre> |
||