Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1314:cellulaere_automaten

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

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)
ws1314/cellulaere_automaten.1392304672.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)