clear all
m=200;                    %taille du domaine
fpos=[m/2 m/2];           %position courante
vel=[1 0;0 1;-1 0; 0 -1]; %vecteurs vitesse E N W S
fvi=1;                    %indice de la vitesse courante
ip=[2 3 4 1];             %i+1 modulo 4
im=[4 1 2 3];             %i-1 modulo 4

X=zeros(m,m);             % remplit X de zeros
figure('Units','points','Position',[20 20 3*m 3*m])
                          %ouvre une figure, unites sont des points,
                          %position sur l'ecran 20, 20;
                          %taille 3*m par 3*m (si on fait m par m, c'est trop petit)
axis([1 3*m 1 3*m])
axis manual               %pour pas qu'il ne se recalcule automatiquement
hold on

while(1);
  if (X(fpos(1),fpos(2))==1)
     fvi=ip(fvi);         %tourne a gauche
     X(fpos(1),fpos(2))=0;%change la valeur en 0
     plot(3*fpos(1),3*fpos(2),'square','Color','w','erasemode','background','markersize',3)
                          %affiche un carre blancde taille 3 par 3 , a la poistion courante
  else
     fvi=im(fvi);         %tourne a droite
     X(fpos(1),fpos(2))=1;%change la valeur en 1
     plot(3*fpos(1),3*fpos(2),'square','Color','b','erasemode','background','markersize',3)
                          %idem en bleu
  end

  fpos=fpos+vel(fvi,:);   % incremente la nouvelle position en fonction de la vitesse
  drawnow
%  pcolor(X)
end
