program ddd;
uses
  crt, graph;
var
  d, m, x, y: integer;
  p: pointer;
  sz, x1, y1: word;

  i: integer;
  start_x, start_y: integer;

begin
  d := detect;
  initgraph( d,m,'' );
  setviewport(0,0,640,80,true);
  clearviewport;
  setbkcolor(0);
  setcolor(15);
  setfillstyle(1,1);
  fillellipse(310,250,70,30);
  fillellipse(310,240,70,30);
  setfillstyle(1,14);
  fillellipse(270,270,20,20);
  fillellipse(350,270,20,20);
  fillellipse(370,250,20,20);
  fillellipse(250,250,20,20);
  arc(310,230,0,180,70);
  line(240,230,380,230);
  setfillstyle(1,5);
  floodfill(280,210,15);
  setfillstyle(1,12);
  floodfill(280,227,15);

  setcolor(0);
  rectangle(200,150,400,300);
  sz:=imagesize(200,150,400,300);
  getmem(p,sz);
  getimage(200,150,400,300,p^);

  cleardevice;
  For i:=1 to 70 do begin
    PutPixel(Random(700),Random (500),White);
  end;

  start_x := random(getmaxx - 200) + 100;
  start_y := random(getmaxy - 200) + 100;
  repeat

    inc(start_x, random(20) - 10);
    inc(start_y, random(20) - 10);

    putimage(start_x, start_y, p^, xorput);
    delay(60000);
    putimage(start_x, start_y, p^, xorput);

  until keypressed;
  readln;
  closegraph;
end.