Letöltés: im_vakond.pas program kisvakons; uses crt; var i,j,k : integer; ret : array[1..100] of array[1..100] of integer; hazsz,retlen,uhosz : integer; vakx,vaky,barx,bary : integer;//vakond,barat koordinata be : text; procedure beolvas(); var x1,x2,y1,y2 : integer; begin assign(be,'vakond.txt'); reset(be); read(be,retlen); readln(be,uhosz); readln(be,vakx,vaky,barx,bary); readln(be,hazsz); for i:=1 to hazsz do begin readln(be,x1,y1,x2,y2); //writeln(x1,y1,x2,y2); for j:= x1 to x2 do for k:= y1 to y2 do ret[j,k] := -1; end; end; procedure megnez(hany,x,y : integer); begin ret[x,y] := hany; writeln(x,' ',y); if (ret[x+1,y] > (hany + 1)) and (x<retlen) then megnez(hany+1,x+1,y); if (ret[x,y+1] > (hany + 1)) and (y<retlen) then megnez(hany+1,x,y+1); if (ret[x-1,y] > (hany + 1)) and (x>1) then megnez(hany+1,x-1,y); if (ret[x,y-1] > (hany + 1)) and (y>1) then megnez(hany+1,x,y-1); end; procedure kiir(meny : integer); var ii,jj : integer; begin for jj:=meny downto 1 do begin writeln(); writeln(); for ii := 1 to meny do begin if ret[ii,jj] = -1 then write('# ') else if ret[ii,jj] = 10001 then write('? ') else write(ret[ii,jj],' '); end; end; end; BEGIN for i:=1 to 100 do for j:=1 to 100 do ret[i,j] := 10001; beolvas(); megnez(0,vakx,vaky); writeln(ret[barx,bary]); kiir(10); END. |