Uses GraphABC;
const MaxShar=50;
type shar = record
x,y:integer;
dx,dy:integer;
end;
var i:byte;
x,y,r:integer;
shars: array[1..MaxShar] of shar;
begin
randomize;
setwindowsize(500,500);
centerwindow;
r:=10;
setpenwidth(3);
for i:=1 to MaxShar do
with shars[i] do
x:=7+r+random(500-2*r-14);
y:=7+r+random(500-2*r-14);
dx:=random(8) + 1;
dy:=random(8) + 1;
lockdrawing;
repeat
clearwindow;
x:=x+dx;
if (x+r+dx>=493) or (x-r+dx<=7) then dx:=-dx;
y:=y+dy;
if (y+r+dy>=493) or (y-r+dy<=7) then dy:=-dy;
setpencolor(clBlue);
setbrushcolor(clBlue);
circle(x,y,r);
setpencolor(clBlack);
moveto(5,5);
lineto(495,5);
lineto(495,495);
lineto(5,495);
lineto(5,5);
sleep(1);
redraw;
until false;
end.
Примечание:
В конце программы есть команда sleep(), чем больше в ней значение, тем меньше скорость шариков. Также её можно просто убрать, тогда скорость будет максимальной.
Uses GraphABC;
const MaxShar=50;
type shar = record
x,y:integer;
dx,dy:integer;
end;
var i:byte;
x,y,r:integer;
shars: array[1..MaxShar] of shar;
begin
randomize;
setwindowsize(500,500);
centerwindow;
r:=10;
setpenwidth(3);
for i:=1 to MaxShar do
with shars[i] do
begin
x:=7+r+random(500-2*r-14);
y:=7+r+random(500-2*r-14);
dx:=random(8) + 1;
dy:=random(8) + 1;
end;
lockdrawing;
repeat
clearwindow;
for i:=1 to MaxShar do
with shars[i] do
begin
x:=x+dx;
if (x+r+dx>=493) or (x-r+dx<=7) then dx:=-dx;
y:=y+dy;
if (y+r+dy>=493) or (y-r+dy<=7) then dy:=-dy;
setpencolor(clBlue);
setbrushcolor(clBlue);
circle(x,y,r);
end;
setpencolor(clBlack);
setpenwidth(3);
moveto(5,5);
lineto(495,5);
lineto(495,495);
lineto(5,495);
lineto(5,5);
sleep(1);
redraw;
until false;
end.
Примечание:
В конце программы есть команда sleep(), чем больше в ней значение, тем меньше скорость шариков. Также её можно просто убрать, тогда скорость будет максимальной.