снежинки

Давным-давно, когда я учился в школе, а было это году эдак в 1996-1997 (7-8класс) на уроки информатики задумал написать программу снежинок. Это потом я начал придумывать, чтобы снег заваливал экран; несколько планов для создания глубины, но первая версия была простой. Всего 2 вида снежинок – крупные и помельче.

uses graph, crt;

const N=240; {количество снежинок}

type
snow = record
x,y,d: array [1..N] of real;
end;

var s,so: snow;
d,r,k: integer;

begin
d:= Detect;
InitGraph(d, r, 'd:\tp7\bgi');
k:= GraphResult;
if k <> grOK then exit;

randomize;
for k:= 1 to N do
begin
s.x[k]:=random(639);
s.y[k]:=random(479);
s.d[k]:=random(2);
so.x[k]:= s.x[k];
so.y[k]:= s.y[k];
so.d[k]:= s.d[k];
end;

repeat
for k:=1 to N do
begin
setcolor(0);
case round(so.d[k]) of
0 : putpixel (round(so.x[k]), round(so.y[k]), 0);
1 : circle (round(so.x[k]),round(so.y[k]), 1);
end;

so.x[k]:= s.x[k];
so.y[k]:= s.y[k];
so.d[k]:= s.d[k];

setcolor(8*round(random(2))-1);
case round(s.d[k]) of
0 : putpixel (round(s.x[k]), round(s.y[k]), 8*round(random(2))-1);
1 : circle (round(s.x[k]),round(s.y[k]), 1);
end;

s.x[k]:= s.x[k] - random(2) + random(2);
s.y[k]:= s.y[k] + 1 - random(2);

if (round(s.y[k]) > 479) then
begin
s.x[k]:= random(639);
s.y[k]:= 0;
s.d[k]:= random(2);
end;
end;

delay(1000);

until keypressed;
closegraph;
end.

snow
snow
snow.zip
20.3 KiB
38 Downloads
Details...

Leave a Reply