Hello to all, Ok, after reading your comments I ended up with this:
#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 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor