uses graphABC;

procedure Shar(xx, yy: integer);
begin
 setpencolor(clblack);
 setbrushcolor(clred);
 circle(xx,yy,10);
 setbrushcolor(clmaroon);
 setpencolor(clmaroon);
 circle(xx+2,yy+2,5);
end;
 
procedure Triangle(x, y, r: integer);
begin
 setpencolor(clgreen);
 line(x-r,y,x,y-(r*2));
 line(x,y-(r*2),x+r,y);
 line(x-r,y,x+r,y);
 floodfill(x,y-2,clgreen);
 Shar(x,y-(r div 2)-(r div 3));
 Shar(x-(r div 4),y-(r div 4));
 Shar(x+(r div 4),y-(r div 4));
 Shar(x-r,y+10);
 Shar(x+r,y+10);
end;
 
procedure Gir(x,y,r: integer);
var i: integer;
begin
i:=-r;
while i<=r do
 begin
  if(getpixel(x+i, y+i)=clgreen) then
  begin
   setbrushcolor(clrandom);
   setpencolor(clrandom);
   circle(x+i,y+i,5);
  end;
 inc(i,10);
 end;
end;
 
begin
 SetWindowTitle('С Новым Годом!');
 setwindowsize(400,500);
 lockdrawing;
 repeat
 clearwindow;
 Triangle(200,200,50);
 Triangle(200,300,80);
 Triangle(200,400,100);
 setpencolor(clbrown);
 setbrushcolor(clbrown);
 rectangle(180,400,220,440);
 Gir(200,200,70);
 Gir(200,300,100);
 Gir(200,400,150);
 sleep(100);
 redraw;
 until false;
end.
