Facebook
From zemlin, 9 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 790
  1. program choinka;
  2.  
  3. uses graph, crt;
  4.  
  5. var
  6. i,j: integer;
  7. znak:char;
  8. s:array [1..300,1..3] of integer;
  9. b:array [1..20,1..4] of integer;
  10.  
  11. procedure menu();
  12. var
  13. gm,dm: smallint;
  14. i,j: integer;
  15. begin
  16.      gm:=d8bit;
  17.      dm:=m800x600;
  18.      initgraph(gm,dm,'');
  19.      setcolor(2);
  20.      line(1,550,800,550);
  21.      setcolor(2);
  22.      line(400,550,400,100);
  23.  
  24.      for i:=1 to 15 do
  25.      begin
  26.           setcolor(2);
  27.           line(400,50+i*25,400+i*25,100+i*29);
  28.           setcolor(2);
  29.           line(400,50+i*25,400-i*25,100+i*29);
  30.      end;
  31.  
  32.      for i:=1 to 300 do
  33.      begin
  34.           s[i,1]:=1+random(799);
  35.           s[i,2]:=1+random(550);
  36.           s[i,3]:=0;
  37.      end;
  38.  
  39.      for i:=1 to 50 do
  40.      begin
  41.           b[i,1]:=10;
  42.           b[i,2]:=10;
  43.           b[i,3]:=random(13);
  44.           b[i,4]:=1;
  45.  
  46.           bar(b[i,1],b[i,2],b[i,3],b[i,1]);
  47.      end;
  48. end;
  49.  
  50. procedure snieg();
  51. var
  52. i,j: integer;
  53. begin
  54.      for i:=1 to 300 do
  55.      begin
  56.           if s[i,2]<540 then putpixel(s[i,1],s[i,2],s[i,3])
  57.           //else if s[i,1] mod 2 = 1 then putpixel(s[i,1],s[i,2],15)
  58.           else if random(1000) mod 10 = 3 then putpixel(s[i,1],s[i,2],15)
  59.           else putpixel(s[i,1],s[i,2],s[i,3]);
  60.           s[i,1]:=s[i,1]+2-random(5);
  61.           s[i,2]:=s[i,2]+1;
  62.           if s[i,2]>550 then s[i,2]:=1;
  63.           if getpixel(s[i,1],s[i,2])=15 then s[i,3]:=0 else
  64.           s[i,3]:=getpixel(s[i,1],s[i,2]);
  65.           putpixel(s[i,1],s[i,2],15);
  66.      end;
  67. end;
  68.  
  69. begin
  70.  
  71.      menu();
  72.      repeat
  73.            snieg();
  74.            delay(25);
  75.  
  76.      until(i=1000);
  77.  
  78.  
  79.      readln;
  80.      readln;
  81.  
  82. end.