uses graph,crt; type body=object procedure draw_body(y:integer); end; procedure body.draw_body(y:integer); var lk:integer; begin if lk=0 then lk:=1 else lk:=0; cleardevice; setactivepage(lk); arc(y,300,0,180,50); line(y-50,300,y-50+10,300); line(y-50+40,300,y-50+60,300); line(y-50+90,300,y-50+100,300); circle(y-25,300,12); circle(y+25,300,12); arc(y-75,250,1,30,75); line(y+round(12*(cos(y*pi/180)))-25,round(12*(sin(y*pi/180)))+300, y-round(12*(cos(y*pi/180)))-25,-round(12*(sin(y*pi/180)))+300); line(y+round(12*(cos(y*pi/180)))+25,round(12*(sin(y*pi/180)))+300, y-round(12*(cos(y*pi/180)))+25,-round(12*(sin(y*pi/180)))+300); line(y+round(12*(cos(pi/2+y*pi/180)))-25,round(12*(sin(pi/2+y*pi/180)))+300, y-round(12*(cos(pi/2+y*pi/180)))-25,-round(12*(sin(pi/2+y*pi/180)))+300); line(y+round(12*(cos(pi/2+y*pi/180)))+25,round(12*(sin(pi/2+y*pi/180)))+300, y-round(12*(cos(pi/2+y*pi/180)))+25,-round(12*(sin(pi/2+y*pi/180)))+300); setvisualpage(lk); end; var q:body; x,d,m,y,lk,ax,ay,bx,by:integer; begin m:=1; d:=detect; initgraph(d, m, ''); ax:=0;ay:=12;bx:=-12;by:=0; for x:=50 to 500 do begin if lk=0 then lk:=1 else lk:=0; q.draw_body(x); end; closegraph; end.