One-dimensional cellular automata: Difference between revisions

m (→‎{{header|REXX}}: added/changed comments and whitespace, changed indentations.)
Line 3,002:
 
<lang Oforth>: nextGen(l)
{
| i |
ListBufferStringBuffer new
l size loop: i [ l at(i 1 -) 1 == l at(i 1 +) 1 == + l at(i) + 2 == over add ]
l at(i 1 -) '#' ==
}
l at(i 1 +) '#' == +
l at(i) '#' == + 2 ==
ifTrue: [ '#' ] else: [ '_' ] over add
] ;
: gen(l, n) { l dup println #[ nextGen dup println ] times(n) };</lang>
 
{{out}}
<pre>
"_###_##_#_#_#_#__#__" 10 gen
gen([ 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0 ], 10)
_###_##_#_#_#_#__#__
[1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0]
_#_#####_#_#_#______
[1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0]
__##___##_#_#_______
[0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 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]
__##___#_##_________
[0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 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]
__##____#_#_________
[0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 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]
__##________________
[0, 1, 1, 0, 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, 0]
__##________________
[0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
ok
</pre>
 
1,015

edits