Ну вот типо делать нечего было :p2: и я тут вроде как написал код (ну не удержался):
Код
uses crt,graph;
const x1=100;
x2=540;
y1=50;
y2=430;
r=9;
var t,c,x,y,xi,yi,dr,md:integer;
n:longint;
procedure pr(var c:integer);
begin
randomize;
c:=random(15)+1;
write(^g);
end;
begin
clrscr;
write('Сколько секунд выполнять программу (0-для безконечного выполнения) ');
readln(t);
dr:=9;
md:=2;
initgraph(dr,md,'c:\bp\bgi');
rectangle(x1,y1,x2,y2);
xi:=1; yi:=1;
x:=(x1+x2) div 2;
y:=(y1+y2) div 2;
repeat
setcolor(0);
circle(x,y,r);
x:=x+xi;
y:=y+yi;
if x=(x2-r-1) then begin
xi:=-1;
pr(c);
end;
if x=(x1+r+1) then begin
xi:=1;
pr(c);
end;
if y=(y2-r-1) then begin
yi:=-1;
pr(c);
end;
if y=(y1+r+1) then begin
yi:=1;
pr(c);
end;
setcolor(c);
circle(x,y,r);
delay(1000);
n:=n+1;
if n=t*200 then exit;
until false;
closegraph;
end.
Ну вот в принцыпе и всё.
В проге нужно указывать сколько секунд выполнятся потому, что если делать цикл вроде
repeat
...
until keypressed;
он по началу ничё работает а потом начинает тормозить со страшной силой...