Don't panic!* Morten Dam Jørgensen - Computerfysik.dk
Don't panic!* Morten Dam Jørgensen - Computerfysik.dk
Don't panic!* Morten Dam Jørgensen - Computerfysik.dk
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
n = 100; % grid size (n x n)<br />
X = randi(2,n,n)-1; % MAGIC GOES HERE!!!!<br />
Y = X; colormap bone<br />
for t=1:1000000 % number of steps<br />
image(Y) % Tegn gitter<br />
for x=1:size(X,1)<br />
for y=1:size(X,2)<br />
if x == 1<br />
if y == 1<br />
s = sum(sum(X(x:x+1, y:y+1))) - X(x,y);<br />
B<br />
elseif y == size(X,2)<br />
s = sum(sum(X(x:x+1, y-1:y))) - X(x,y);<br />
else<br />
E<br />
s = sum(sum(X(x:x+1, y-1:y+1))) - X(x,y);<br />
end<br />
elseif x == size(X,1)<br />
K<br />
if y == 1<br />
s = sum(sum(X(x-1:x, y:y+1))) - X(x,y);<br />
elseif y == size(X,2)<br />
L<br />
s = sum(sum(X(x-1:x, y-1:y))) - X(x,y);<br />
else<br />
s = sum(sum(X(x-1:x, y-1:y+1))) - X(x,y);<br />
A<br />
end<br />
else<br />
if y == 1<br />
s = sum(sum(X(x-1:x+1, y:y+1))) - X(x,y);<br />
G<br />
elseif y == size(X,2)<br />
s = sum(sum(X(x-1:x+1, y-1:y))) - X(x,y);<br />
else<br />
E<br />
s = sum(sum(X(x-1:x+1, y-1:y+1))) - X(x,y);<br />
end<br />
end<br />
R<br />
if X(x,y) == 1 && s < 2 % Too few neighbours, underpopulation<br />
Y(x,y) = 0;<br />
elseif X(x,y) == 1 && (s == 2 || s == 3) % balance<br />
Y(x,y) = X(x,y);<br />
elseif X(x,y) == 1 && s > 3 % over-population<br />
Y(x,y) = 0;<br />
elseif X(x,y) == 0 && s == 3 % Spawn new cell<br />
Y(x,y) = 1;<br />
end<br />
end<br />
end<br />
pause(0.01)<br />
X = Y;<br />
end