program tenis;
uses crt,graph;
var pic,pic2:pointer;
    xx,yy,a,b,x,y,x0,y0,r,karta,tryb,d:integer;
BEGIN
r:=11;
d:=2*r;
detectgraph(karta,tryb);
initgraph(karta,tryb,' ');
settextstyle(0,0,1);
setfillstyle(1,15);

circle(100,100,r-1);
floodfill(100,100,15);
bar(200,100,205,6*r+100);
getmem(pic,imagesize(100-r,100-r,100+r,100+r));
getmem(pic2,imagesize(200,100,205,6*r+100));
getimage(100-r,100-r,100+r,100+r,pic^);
getimage(200,100,205,6*r+100,pic2^);
putimage(100-r,100-r,pic^,xorput);
putimage(200,100,pic2^,xorput);
b:=0;
yy:=0;
a:=7;
repeat

 for xx:=0 to getmaxx-2*r do begin
   if b<=yy then
           if yy<>getmaxy-2*r then
		           begin
                    putimage(xx,yy,pic^,xorput);
                    putimage(0,yy-d,pic2^,xorput);
                    putimage(getmaxx-r,yy-d,pic2^,xorput);
                    delay(a);
                    putimage(xx,yy,pic^,xorput);
                    putimage(0,yy-d,pic2^,xorput);
                    putimage(getmaxx-r,yy-d,pic2^,xorput);
                    b:=yy;
                    yy:=yy+1;
                   end
              else begin
                    putimage(xx,yy,pic^,xorput);
                    putimage(0,yy-d,pic2^,xorput);
                    putimage(getmaxx-r,yy-d,pic2^,xorput);
                    delay(a);
                    putimage(xx,yy,pic^,xorput);
                    putimage(0,yy-d,pic2^,xorput);
                    putimage(getmaxx-r,yy-d,pic2^,xorput);
                    b:=yy;
                    yy:=yy-1;
                   end
           else
           if yy<>0 then 
		           begin
                    putimage(xx,yy,pic^,xorput);
                    putimage(0,yy-d,pic2^,xorput);
                    putimage(getmaxx-r,yy-d,pic2^,xorput);
                    delay(a);
                    putimage(xx,yy,pic^,xorput);
                    putimage(0,yy-d,pic2^,xorput);
                    putimage(getmaxx-r,yy-d,pic2^,xorput);
                    b:=yy;
                    yy:=yy-1;
                    end
               else begin
                     putimage(xx,yy,pic^,xorput);
                     putimage(0,yy-d,pic2^,xorput);
                     putimage(getmaxx-r,yy-d,pic2^,xorput);
                     delay(a);
                     putimage(xx,yy,pic^,xorput);
                     putimage(0,yy-d,pic2^,xorput);
                     putimage(getmaxx-d,yy-r,pic2^,xorput);
                     b:=yy;
                     yy:=yy+1;
                    end;
          end;

    for xx:=getmaxx-2*r downto 0 do begin
         if b<=yy then
            if yy<>getmaxy-2*r then
			     begin
                  putimage(xx,yy,pic^,xorput);
                  putimage(0,yy-d,pic2^,xorput);
                  putimage(getmaxx-r,yy-d,pic2^,xorput);
                  delay(a);
                  putimage(xx,yy,pic^,xorput);
                  putimage(0,yy-d,pic2^,xorput);
                  putimage(getmaxx-r,yy-d,pic2^,xorput);
                  b:=yy;
                  yy:=yy+1;
                 end
            else begin
                  putimage(xx,yy,pic^,xorput);
                  putimage(0,yy-d,pic2^,xorput);
                  putimage(getmaxx-r,yy-d,pic2^,xorput);
                  delay(a);
                  putimage(xx,yy,pic^,xorput);
                  putimage(0,yy-d,pic2^,xorput);
                  putimage(getmaxx-r,yy-d,pic2^,xorput);
                  b:=yy;
                  yy:=yy-1;
                 end
                else
                if yy<>1 then
				    begin
                     putimage(xx,yy,pic^,xorput);
                     putimage(0,yy-d,pic2^,xorput);
                     putimage(getmaxx-r,yy-d,pic2^,xorput);
                     delay(a);
                     putimage(xx,yy,pic^,xorput);
                     putimage(0,yy-d,pic2^,xorput);
                     putimage(getmaxx-r,yy-d,pic2^,xorput);
                     b:=yy;
                     yy:=yy-1;
                    end
               else begin
                     putimage(xx,yy,pic^,xorput);
                     putimage(0,yy-d,pic2^,xorput);
                     putimage(getmaxx-r,yy-d,pic2^,xorput);
                     delay(a);
                     putimage(xx,yy,pic^,xorput);
                     putimage(0,yy-d,pic2^,xorput);
                     putimage(getmaxx-r,yy-d,pic2^,xorput);
                     b:=yy;
                     yy:=yy+1;
                    end;
             end;

until keypressed;
closegraph;
end.