15.09.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!