25 lines
714 B
Text
25 lines
714 B
Text
' [RC] 'One-dimensional cellular automata'
|
|
|
|
' does not wrap so fails for some rules
|
|
rule$ ="00010110" ' Rule 22 decimal
|
|
|
|
state$ ="0011101101010101001000"
|
|
|
|
for j =1 to 20
|
|
print state$
|
|
oldState$ =state$
|
|
state$ ="0"
|
|
for k =2 to len( oldState$) -1
|
|
NHood$ =mid$( oldState$, k -1, 3) ' pick 3 char neighbourhood and turn binary string to decimal
|
|
vNHood =0
|
|
for kk =3 to 1 step -1
|
|
vNHood =vNHood +val( mid$( NHood$, kk, 1)) *2^( 3 -kk)
|
|
next kk
|
|
' .... & use it to index into rule$ to find appropriate new value
|
|
state$ =state$ +mid$( rule$, vNHood +1, 1)
|
|
next k
|
|
state$ =state$ +"0"
|
|
|
|
next j
|
|
|
|
end
|