% tili toli 1 clear clc A = randperm(9) - 1; A = reshape(A, 3, 3); %A=[3 7 2; 1 4 5; 6 8 0]; solution = [1 2 3; 4 5 6; 7 8 0]; % Manhattan tavolsagok osszege h1 = 0; for i = 1 : 3 for j = 1 : 3 temp = A(i, j); if temp ~=0 [x_coord y_coord] = find(solution==temp); h1 = h1 + abs(i-x_coord) + abs(j-y_coord); endif endfor endfor % lapocskak szama amelyik helyen van h2 = 0; temp2 = A - solution; h2 = numel(find(temp2==0)); [p q] = find(A==0); [u v] = find(solution==0); if (p==u && q==v) h2 = h2 - 1; endif [c d] = find(A==0); while (c~=3) A(c,d)=A(c+1,d); A(c+1,d)=0; [c d] = find(A==0); endwhile [c d] = find(A==0); while (d~=3) A(c,d)=A(c,d+1); A(c,d+1)=0; [c d]=find(A==0); endwhile A Asor = [A(1,:) A(2,:) A(3,:)]; Asor(9)=[] numInv = 0; for i = 1 : 7 for j = i+1 : 8 if Asor(i) > Asor(j) numInv = numInv + 1; endif endfor endfor numInv if (rem(numInv,2) == 0) disp('Van megoldas.') else disp('Nincs megoldas.') endif