for i from 1 to M do X[i,0]:=0; Y[i,0]:=0; for j from 0 to N do if j=1 then X[i,1]:=1; Y[i,1]:=0; elif j>1 then r:=R3(); if r=1 then X[i,j]:=2*X[i,j-1]-X[i,j-2]; Y[i,j]:=2*Y[i,j-1]-Y[i,j-2] elif r=2 then X[i,j]:=X[i,j-1]+Y[i,j-1]-Y[i,j-2]; Y[i,j]:=Y[i,j-1]-X[i,j-1]+X[i,j-2]; elif r=3 then X[i,j]:=X[i,j-1]-Y[i,j-1]+Y[i,j-2]; Y[i,j]:=Y[i,j-1]+X[i,j-1]-X[i,j-2]; end if; end if; R[i,j]:=[X[i,j],Y[i,j]]; K[i,j]:=[X[i,j],Y[i,j]]; end do:end do:

Now the code works fine. But I don't want the lines to cross its own path. I want it to stop if R[i,j]=R[i,k] for any 0<k<i-2 for j=0..N. What I have so far is:

for i from 1 to M do for j from 1 to 40 do R[i,j]; for k from 1 to j-2 do if R[i,j]=K[i,k] then x:=j; print(b[i]=j); break; end if; L[i,j]:=R[i,j]; end do; end do;end do;

Now it works aswell, but it doesn't stop when it hits the crossing point. I want it to stop so i get one b[i]=j per M. So I need it to break two for loops so that it goes through i M times and stops everytime it reaches a crossing point