Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ws1314:cellulaere_automaten [2014/02/13 16:17] Jimmendorf |
ws1314:cellulaere_automaten [2016/05/10 14:46] (aktuell) |
||
---|---|---|---|
Zeile 145: | Zeile 145: | ||
for s in range(10000000): | for s in range(10000000): | ||
A = updateB(A) | A = updateB(A) | ||
+ | if s%100 == 0: | ||
+ | im.set_data(A) | ||
+ | plt.draw() | ||
+ | |||
+ | plt.ioff() | ||
+ | plt.show() | ||
+ | |||
+ | |||
+ | #für josh!: | ||
+ | #codezeilen die du wolltest | ||
+ | #viel spaß | ||
+ | import numpy as np | ||
+ | import matplotlib.pyplot as plt | ||
+ | |||
+ | x = 100 | ||
+ | y = 100 | ||
+ | |||
+ | def setup(x,y): | ||
+ | #'''Erstellung der Welt mit Zuflliger An/Aus Verteilung ''' | ||
+ | Z = np.random.randint(2, size = (x,y)) | ||
+ | return Z | ||
+ | |||
+ | |||
+ | def deamon(x,y): | ||
+ | #'''Whlt zufllige Zelle fr asynchrones Update aus ''' | ||
+ | return (np.random.randint(x),np.random.randint(y)) | ||
+ | |||
+ | def intrinsic(Z, rule, mode): | ||
+ | i,j = deamon(x,y) | ||
+ | if mode == '2-radial': | ||
+ | k = (Z[(i-1)%x,(j-1)%y]+Z[(i-1)%x,j]+Z[(i-1)%x,(j+1)%y]\ | ||
+ | +Z[i,(j-1)%y]+Z[i,(j+1)%y]+Z[(i+1)%x,(j-1)%y]+\ | ||
+ | Z[(i+1)%x,j]+Z[(i+1)%x,(j+1)%y])+Z[(i+2)%x,j]+\ | ||
+ | +Z[(i-2)%x,j]+Z[i,(j+2)%y]+Z[i,(j-2)%y] | ||
+ | if mode == 'Moore': | ||
+ | k =(Z[(i-1)%x,(j-1)%y]+Z[(i-1)%x,j]+Z[(i-1)%x,(j+1)%y]\ | ||
+ | +Z[i,(j-1)%y]+Z[i,(j+1)%y]+Z[(i+1)%x,(j-1)%y]+\ | ||
+ | Z[(i+1)%x,j]+Z[(i+1)%x,(j+1)%y]) | ||
+ | if rule=='Diagonal': | ||
+ | if Z[i,j] == 1: | ||
+ | if (k < 3 or k > 6): | ||
+ | Z[i,j] = 0 | ||
+ | else: | ||
+ | if k == 6: | ||
+ | Z[i,j] = 1 | ||
+ | if rule=='Life': | ||
+ | if Z[i,j] == 1: | ||
+ | if (k > 3) or (k < 2): | ||
+ | Z[i,j] = 0 | ||
+ | else: | ||
+ | if k == 3: | ||
+ | Z[i,j] = 1 | ||
+ | if rule == 'Striche': | ||
+ | if Z[i,j] ==1: | ||
+ | if k > 2: | ||
+ | Z[i,j] = 0 | ||
+ | else: | ||
+ | if k == 2: | ||
+ | Z[i,j] = 1 | ||
+ | return Z | ||
+ | |||
+ | |||
+ | def environment(Z): | ||
+ | i,j = deamon(x,y) | ||
+ | Z[i,j] = 1 | ||
+ | return Z | ||
+ | |||
+ | |||
+ | A = setup(x,y) | ||
+ | stoer = (True, 21) | ||
+ | plt.ion() | ||
+ | |||
+ | im=plt.imshow(A,interpolation='nearest', cmap = plt.cm.gray_r) | ||
+ | plt.xticks([]),plt.yticks([]) | ||
+ | |||
+ | for s in range(10000000): | ||
+ | A = intrinsic(A, 'Diagonal', '2-radial') | ||
+ | if stoer[0] == True: | ||
+ | if s%stoer[1] == 0: | ||
+ | A = environment(A) | ||
if s%100 == 0: | if s%100 == 0: | ||
im.set_data(A) | im.set_data(A) |