uses crt,graph;
var
gd,gm:integer;
procedure krug(x,y:integer;c:byte);
begin
setcolor(c);
setfillstyle(1,c);
circle(x,y,5);
floodfill(x,y,c);
end;
procedure init;
begin
gd:=installuserdriver('svga256',nil);
gm:=2;
initgraph(gd,gm,'');
end;
procedure main;
var
x,y,cx,cy:integer;
ch:char;
color:byte;
begin
randomize;
color:=random(15)+1;
cx:=1;
cy:=1;
x:=15;
y:=50;
repeat
if keypressed then ch:=readkey;
delay(150);
setfillstyle(1,0);
bar(x-6,y-6,x+6,y+6);
x:=x+cx*10;
y:=y+cy*10;
if y<15 then begin cy:=1; color:=green;end;
if x<15 then begin cx:=1; color:=red;end;
if x>625 then begin cx:=-1;color:=blue;end;
if y>465 then begin cy:=-1;color:=yellow;end;
krug(x,y,color);
until ch=#27;
end;
begin
init;
main;
end.