16 lines
473 B
Text
16 lines
473 B
Text
procedure main(A)
|
|
A := if *A = 0 then ["01110110101010100100"]
|
|
CA := show("0"||A[1]||"0") # add always dead border cells
|
|
every CA := show(|evolve(CA)\10) # limit to max of 10 generations
|
|
end
|
|
|
|
procedure show(ca)
|
|
write(ca[2:-1]) # omit border cells
|
|
return ca
|
|
end
|
|
|
|
procedure evolve(CA)
|
|
newCA := repl("0",*CA)
|
|
every newCA[i := 2 to (*CA-1)] := (CA[i-1]+CA[i]+CA[i+1] = 2, "1")
|
|
return CA ~== newCA # fail if no change
|
|
end
|