[[kun2_pas]]
 
program kun;
 
const n=8;
 
var a, zi, zj: array [1..n, 1..n] of integer;
 
procedure Init;
var i,j: integer;
begin
    for i:=1 to n do
      for j:=1 to n do begin
           a[i,j]:= -1;
          zi[i,j]:= -1;
          zj[i,j]:= -1;
      end;
end;
 
procedure Hraj (ii, jj, i,j:integer; k:integer);
begin
  if (i>=1) and (i<=n) and (j>=1)and (j<=n)  then begin
     if (a[i,j] = -1) or (a[i,j] > k) then begin
        a [i,j] := k;
        zi[i,j] := ii;
        zj[i,j] := jj;
 
        Hraj(i,j, i+2,j+1, k+1);
        Hraj(i,j, i+2,j-1, k+1);
        Hraj(i,j, i-2,j+1, k+1);
        Hraj(i,j, i-2,j-1, k+1);
 
        Hraj(i,j, i+1,j+2, k+1);
        Hraj(i,j, i+1,j-2, k+1);
        Hraj(i,j, i-1,j+2, k+1);
        Hraj(i,j, i-1,j-2, k+1);
     end;
  end;
end;
 
procedure Vypis;
var i,j: integer;
begin
     for i:=1 to n do begin
         for j:=1 to n do
           if a[i,j] = -2 then write ('!':3)
           else if a[i,j] = -1 then write ('x':3)
           else write (a[i,j]:3);
         writeln;
     end;
end;
 
procedure Prekazky;
var i,j: integer;
begin
     for i:= 3 to 5 do
         for j:=2 to 4 do
           a[i,j] := -2;
end;
 
procedure CestaP (i, j: integer);
begin
     if (i >= 1) and (j >= 1) then begin
        writeln (a[i,j], '. krok ', i, ',', j);
        CestaP (zi[i,j], zj[i,j]);
     end;
end;
 
procedure Cesta (i, j: integer);
begin
     if (i >= 1) and (j >= 1) then begin
        Cesta (zi[i,j], zj[i,j]);
        writeln (a[i,j], '. krok ', i, ',', j);
     end;
end;
 
 
begin
   Init;
   Prekazky;
   Hraj (-1,-1, 1,1, 0);
   Vypis;
   Cesta (8,8);
   readln;
end.
 
kun2_pas.txt · Last modified: 2014/04/03 15:12 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki