usescrt,graph; vardriver,mode:integer; var a,b,x,y:integer; n:integer; procedure lerl (dx,dy:integer); begin delay(5); x:=x+dx;y:=y+dy; lineto(x,y); end; procedure bb(k:integer);forward; procedure cc(k:integer);forward; procedure dd(k:integer);forward; procedure aa(k:integer); begin if K>0 then begin aa (k-1); lerl(a,b); setlinestyle(1,0,4); setbkcolor(15); bb(k-1); lerl(a,0); ; dd(k-1);lerl(a,-b); aa(k-1); end; end; procedure bb(k:integer); begin if K>0 then begin SETCOLOR(RANDOM(12)); bb(k-1); lerl(-a,b); cc(k-1); lerl(0,b); aa (k-1); lerl(a,b); bb(k-1); end; end; procedure cc(k:integer); begin if k>0 then begin cc(k-1); lerl(-a,-b); dd(k-1); lerl(-a,0); bb (k-1); lerl(-a,b); cc(k-1); end; end; procedure dd(k:integer); begin if k>0 then begin dd(k-1); lerl(a,-b); aa(k-1); lerl(0,-b); cc (k-1); lerl(-a,-b); dd(k-1); end; end; begindriver:=detect; initgraph (driver,mode,'c:\bp\bgi'); n:=6;a:=3; b:=a; x:=10; y:=10; moveto (x,y); aa(n);setcolor(1); lerl(a,b); bb(n); setcolor(12);lerl(-a,b); cc (n);setcolor(14); lerl(-a,-b); dd(n); lerl(a,-b); end.