Курсовая работа: Поиск кратчайшего пути в многоугольнике
c:=-1;
while 1000>=c do begin
c:=c+1;
for i:=0 to n-1 do begin
for j:=0 to n-1 do begin
if metka1[i,j]=c then begin
for i1:=-1 to 1 do begin
for j1:=-1 to 1 do begin
if (i1=0) and (j1=0) then continue;//что бы не проверять саму точку
if not z[i+i1,j+j1] or (metka1[i+i1,j+j1]<>$7fff) then continue;//точка не доступ- //на или путь к ней отсутствует
metka1[i+i1,j+j1]:=c+1;
if (i+i1=a.x) and (j+j1=a.y) then begin//попалинастарт
goto LBL;
end;
end;
end;
end;
end;
end;
end;
//запись полученной матрицы меток в текстовый файл
LBL:
//процедура двигаясь от старта к финишу по полученным меткам
//заносит пройденные точки в массив точек пути
if metka1[a.x,a.y]=$7fff then begin
exit;
end;
c:=metka1[a.x,a.y];//кол-во ходов от старта до финиша
i:=a.x;