One-dimensional cellular automata: Difference between revisions

Added Red version
(Added solution for Action!)
(Added Red version)
Line 4,660:
| # # # # |
| # # # # # # # # |
</pre>
 
=={{header|Red}}==
<lang Rebol>
Red [Purpose: "One-dimensional cellular automata"]
 
vals: [0 1 0]
kill: [[0 0] [#[none] 0] [0 #[none]]]
evo: function [petri] [
new-petri: copy petri
while [petri/1] [
if all [petri/-1 = 1 petri/2 = 1] [new-petri/1: select vals petri/1]
if find/only kill reduce [petri/-1 petri/2] [new-petri/1: 0]
petri: next petri new-petri: next new-petri
]
petri: head petri new-petri: head new-petri
petri: head clear insert petri new-petri
]
 
loop 10 [
evo probe [1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0]
]
</lang>
 
{{out}}
<pre>
[1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0]
[1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0]
[0 1 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0]
[0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0]
[0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0]
[0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0]
[0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0]
[0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]
[0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
</pre>
 
Anonymous user