RosettaCodeData/Task/One-dimensional-cellular-automata/Red/one-dimensional-cellular-automata.red
2023-07-01 13:44:08 -04:00

26 lines
628 B
Text

Red [
Purpose: "One-dimensional cellular automata"
Author: "Joe Smith"
]
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
clear insert petri new-petri
]
display: function [petri] [
print replace/all (replace/all to-string petri "0" "_") "1" "#"
petri
]
loop 10 [
evo display [1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0]
]