Uses Crt,Knihovna; Const Pocet=10; Var Pole:array[1..Pocet,1..Pocet] of byte; MaxKroku:byte; Mist:byte; r,x,y,o:byte; Procedure Zjisti(OdC,DoC,Kroku:byte;Text:string); Var i:byte; Begin If Kroku<=MaxKroku then Begin If OdC=DoC then Begin Writeln(Text); End Else Begin For i:=1 to Mist do Begin If (Pole[OdC,i]=1) and (i<>OdC) Then Begin Zjisti(i,DoC,Kroku+1,Text+' -> '+chr(64+i)); End; End; End; End; End; (**) Begin Barva(7,0);ClrScr; Repeat Write('Zadejte pocet mist (2-10): ');Readln(Mist); Until (Mist>=2) and (Mist<=10); Repeat Write('Zadejte pocet kroku: ');Readln(MaxKroku); Until MaxKroku>0; Write(Strings(80,'-'));Writeln('Nyni vyplnte tabulku: '); For o:=1 to Mist do Begin Locate(o*4+1,5,Chr(o+64)); Locate(1,o*2+5,Chr(o+64)); End; VytvorSit(3,6,Mist*4+3,Mist*2+6,2,3,1,TRUE); For y:=1 to Mist do For x:=1 to Mist do Begin GotoXY(x*4+1,y*2+5); Repeat r:=Ord(Readkey)-48; If (r=1) or (r=0) then Begin Write(r); Pole[x,y]:=r; End; Until (r=1) or (r=0); End; Delay(1000); ClrScr; Write('Zadejte cislo odkud jedete (A=1;B=2;...): ');Readln(x); Write('Zadejte cislo kam jedete: ');Readln(y); Write(Strings(80,'-')); Zjisti(x,y,0,chr(64+x)); Readkey;ClrScr; End.