% cristallisation en spirale
% A. Dewdney Pour la science, No 144, octobre 1989

% J.-B. Roux, octobre 1999

% Données
n=32;
nbli=256;
nbco=256;

% définition des matrices
nouveau=fix(n*rand(nbli,nbco));
ancien=nouveau;
imagesc(nouveau);
axis off

compt=0;
while compt<=10000
  for i=1:nbli
   for j=1:nbco
      pivot=rem(ancien(i,j)+1,n);
      i1=i-1; if i1==0, i1=nbli; end
      i2=rem(i,nbli)+1;
      i3=i; i4=i; j1=j; j2=j;
      j3=j-1; if j3==0, j3=nbco; end
      j4=rem(j,nbco)+1;
      if ancien(i1,j1)==pivot
         nouveau(i,j)=ancien(i1,j1);
      elseif ancien(i2,j2)==pivot
         nouveau(i,j)=ancien(i2,j2);
      elseif ancien(i3,j3)==pivot
         nouveau(i,j)=ancien(i3,j3);
      elseif ancien(i4,j4)==pivot
         nouveau(i,j)=ancien(i4,j4);
      end
   end
  end
  imagesc(nouveau)
  axis image
  axis off
  drawnow
  ancien=nouveau;
end



