# [Tutor] First real script

Carlos carloslara at web.de
Tue Nov 7 11:13:25 CET 2006

```Hello to all,

#Easy_2DCA_01.py
#A very basic 2D script that lets you play with Wolfram's rule 30

A_List = [0]*10+[1]+[0]*10
A_Len = len(A_List)
B_List = []
print A_List
Iterations = 5

rule_30 = {
(1, 1, 1) : 0,
(1, 1, 0) : 0,
(1, 0, 1) : 0,
(1, 0, 0) : 1,
(0, 1, 1) : 1,
(0, 1, 0) : 1,
(0, 0, 1) : 1,
(0, 0, 0) : 0,
}

for j in range (Iterations):
for i in  range (A_Len):

x = A_List[i-1]
y = A_List[i]

if i < A_Len-1:
z = A_List[i+1]

else:
z = A_List[0]

X = rule_30[x,y,z]

B_List.append (X)

print B_List
A_List = B_List
B_List = []

Not bad I think :P It is compact and readable, even by a dummy like me.
I took the ideas that I completely understand, there are others that are
slightly too much for me now, but they are noted too.

I want to thank all you guys for the comments. This is my first script,
but I can see that this list a great resource for learning Python.

As you may have noticed the name of the script has changed, I will now
try a 3D CA. I have been thinking that the best way to do this would be
to use a matrix, like those found in SciPy. Do you think this is a good
idea? I'm afraid that my reasoning is too linear, to add another
dimension to my script I will add another dimension to my initial list.

Here is an example:

import scipy
a1 = scipy.zeros((4,5))
print a1
[[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]]

Thats it for now.

Thanks again,
Carlos

```