- program choinka;
- uses graph, crt;
- var
- i,j: integer;
- znak:char;
- s:array [1..300,1..3] of integer;
- b:array [1..20,1..4] of integer;
- procedure menu();
- var
- gm,dm: smallint;
- i,j: integer;
- begin
- gm:=d8bit;
- dm:=m800x600;
- initgraph(gm,dm,'');
- setcolor(2);
- line(1,550,800,550);
- setcolor(2);
- line(400,550,400,100);
- for i:=1 to 15 do
- begin
- setcolor(2);
- line(400,50+i*25,400+i*25,100+i*29);
- setcolor(2);
- line(400,50+i*25,400-i*25,100+i*29);
- end;
- for i:=1 to 300 do
- begin
- s[i,1]:=1+random(799);
- s[i,2]:=1+random(550);
- s[i,3]:=0;
- end;
- for i:=1 to 50 do
- begin
- b[i,1]:=10;
- b[i,2]:=10;
- b[i,3]:=random(13);
- b[i,4]:=1;
- bar(b[i,1],b[i,2],b[i,3],b[i,1]);
- end;
- end;
- procedure snieg();
- var
- i,j: integer;
- begin
- for i:=1 to 300 do
- begin
- if s[i,2]<540 then putpixel(s[i,1],s[i,2],s[i,3])
- //else if s[i,1] mod 2 = 1 then putpixel(s[i,1],s[i,2],15)
- else if random(1000) mod 10 = 3 then putpixel(s[i,1],s[i,2],15)
- else putpixel(s[i,1],s[i,2],s[i,3]);
- s[i,1]:=s[i,1]+2-random(5);
- s[i,2]:=s[i,2]+1;
- if s[i,2]>550 then s[i,2]:=1;
- if getpixel(s[i,1],s[i,2])=15 then s[i,3]:=0 else
- s[i,3]:=getpixel(s[i,1],s[i,2]);
- putpixel(s[i,1],s[i,2],15);
- end;
- end;
- begin
- menu();
- repeat
- snieg();
- delay(25);
- until(i=1000);
- readln;
- readln;
- end.