uses graph,crt; label 1,2; var T,D,M,TX,TY,S,TempS,OS,OT,X,Y,XT,YT,XO,YO,Dy : Integer; begin S:=2; X:=1; Y:=1; XT:=1; YT:=1; XO:=1; YO:=1; TempS:=2; Dy:=10; randomize; d:=VGA; M:=2; initgraph(d, m, 'c:\bp\bgi'); For TX:=1 to 3 do For TY:=1 to 4 do Rectangle(TX*50,TY*50,TX*50+35,TY*50+35); Rectangle(35,35,201,251); repeat 1: if S=2 then TempS:=Random(3)+1; if S=3 then TempS:=Random(3)+2; if S=4 then begin TempS:=Random(3)+1; Case TempS of 1 : TempS:=1; 2 : TempS:=3; 3 : TempS:=4; end; end; if S=1 then begin TempS:=Random(3)+1; Case TempS of 1 : TempS:=1; 2 : TempS:=2; 3 : TempS:=4; end; end; Case TempS of 1 : if XT>1 then Dec(XT); 2 : if YT<5 then Inc(YT); 3 : if XT<4 then Inc(XT); 4 : if YT>1 then Dec(YT); end; if (X=1) and (Y=1) and (TempS=2) then goto 2; if (X=XT) and (Y=YT) then goto 1; X:=XT; Y:=YT; S:=TempS; if S=3 then begin For T:=XO*50 to X*50 do begin SetColor(15); Circle(T-7,Y*50-6,5); Delay(Dy); SetColor(0); Circle(T-7,Y*50-6,5); SetColor(2); Circle(3*50-7,3*50-6,5); end; end; if S=1 then begin For T:=XO*50 downto X*50 do begin SetColor(15); Circle(T-7,Y*50-6,5); Delay(Dy); SetColor(0); Circle(T-7,Y*50-6,5); SetColor(2); Circle(3*50-7,3*50-6,5); end; end; if S=2 then begin For T:=YO*50 to Y*50 do begin SetColor(15); Circle(X*50-7,T-6,5); Delay(Dy); SetColor(0); Circle(X*50-7,T-6,5); SetColor(2); Circle(3*50-7,3*50-6,5); end; end; if S=4 then begin For T:=YO*50 downto Y*50 do begin SetColor(15); Circle(X*50-7,T-6,5); Delay(Dy); SetColor(0); Circle(X*50-7,T-6,5); SetColor(2); Circle(3*50-7,3*50-6,5); end; end; if (X=3) and (Y=3) then Inc(Dy,10); if (X=1) and (Y=5) and (S=4) then goto 2; XO:=X; YO:=Y; until keypressed; 2:CloseGraph; end.