%%% Construction du nuage créé par le DLA interne sur Z^2

clear all;
N=1500; % Taille du nuage final = temps auquel on regarde le modele
B(1,1)=0;B(1,2)=0;
A(1,1)=0;A(1,2)=0;
for j=1:N
        i=2;
        b=1;
	while b==1
	        % Progression de la marche aléatoire
		p=rand(1);
		if p<0.5
			 if p<0.25
			        A(i,1)=A(i-1,1)+1;
			        A(i,2)=A(i-1,2);
                         end       
			 if p>=0.25
			        A(i,1)=A(i-1,1)-1;
			        A(i,2)=A(i-1,2);
                         end
 		end
		if p>=0.5
			 if p<0.75
			        A(i,1)=A(i-1,1);
			        A(i,2)=A(i-1,2)+1;
                         end       
			 if p>=0.75
			        A(i,1)=A(i-1,1);
			        A(i,2)=A(i-1,2)-1;
                         end
		end
		a=0;
		k=1;
		while a==0
		% Comparaison avec les points du nuage précédent
			if k==j
				B(j,:)=A(i,:);a=1;b=0;
			end
			if A(i,:)==B(k,:)
				a=1;
			end
		k=k+1;
		end
		i=i+1;
	end
disp(j); % Affichage du temps
end

R=sqrt(N./pi); % Rayon du cercle
n=100; % Précision pour le trace du cercle
[X,Y]=pol2cart([0:(2*pi)/n:2*pi],R*ones(1,n+1)); % Ecriture en coordonnées cartésiennes des points du cercle.
plot(B(:,1),B(:,2),'.',X,Y)


