sumhbudd.gif (1767 octets)

 

 

sumhbudd.gif (1767 octets)

 

Ce programme écrit en Turbo-Pascal 6 dessine un sapin qui s'illumine avec une temporisation modifiée par la tension saisie sur une entrée analogique d'une interface (Orphy...)

{2IESP RQuer 18/12/96 revu 3/98 }
program sapin;
uses graph,crt,orphy;
var d,x1,y1,x2,y2,p,c,x,y,i,gr,n:integer;
{--------------remplace l'entree analogique d'une interface (orphy...)}
function ea(n:integer):integer;
begin n:=n+1;if n>255 then n:=50;ea:=n;end;
{-----------------------------------------}
begin
  n:=50;
  gr:=0;
  initgraph(gr,gr,'');
  setcolor(green);
  x:=320;y:=100;
  {----Sapin : cote gauche-------------}
  for i:=1 to 5 do
     begin
     line(x,y,x-50,y+60);
     line(x-50,y+60,x-25,y+50);
     circle(x-50-10,y+60,10);
     x:=x-25;y:=y+50;
     end;
  x1:=x;y1:=y;
  x:=320;y:=100;
  {----Cote‚ droit----------------------}
  for i:=1 to 5 do
     begin
     line(x,y,x+50,y+60);
     line(x+50,y+60,x+25,y+50);
     circle(x+50+10,y+60,10);
     x:=x+25;y:=y+50;
     end;
  x2:=x;y2:=y;
  line(x1,y1,x2,y2); {bas du sapin}
  rectangle(x1+70,y1,x2-70,y2+50); {tronc}
  setfillstyle(1,lightgreen);
  floodfill(1,1,green);   {fond}
  setfillstyle(11,white);
  floodfill(320,125,green); {sapin}
  setfillstyle(1,brown);
  floodfill(x1+71,y1+30,green);  {tronc}
  settextstyle(gothicfont,horizdir,6);
  settextjustify(centertext,centertext);
  outtextxy(320,50,'Joyeux Noel aux IESP');
  {------Boules-----------------------}
  p:=1;
  repeat
     x:=320;y:=100;
     for i:=1 to 5 do
        begin
        c:=random(15)+1;
        if c=green then c:=red; {remplissage en vert interdit}
        setfillstyle(1,c);      {car frontiere verte}
        floodfill(x-50-10,y+60,green);
        x:=x-25;y:=y+50;
        end;
     x:=320;y:=100;
     for i:=1 to 5 do
        begin
        c:=random(15)+1;
        if c=green then c:=red;
        setfillstyle(1,c);
        floodfill(x+50+10,y+60,green);
        x:=x+25;y:=y+50;
        end;
     d:=ea(0); {la tension sur l'entree analogique 0 fixe la temporisation}
     delay(2*d);
   until keypressed;
   readln;
end.

Le programme exécutable

Le programme source

 

Association EVARISTE : Haage@cnam.fr    Webmaster : Canu@cnam.fr

Copyright EVARISTE 1999