#include<graphics.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define NUM 5
#define XSPED 2
#define YSPED 2
#define SHUAX 20
#define BAJ 20
main()
{
char *p="welcome to circle Moving system";
int gdriver,gmode,i,j;
int xloc[NUM],yloc[NUM],cot=0,js,xs[NUM],ys[NUM];
gdriver=DETECT;
initgraph(&gdriver,&gmode,"c:\\tc");
setbkcolor(GREEN);
setcolor(RED);
cleardevice();
settextstyle(0,0,2);
sleep(2);
outtextxy(100,140,p);
sleep(2);
outtextxy(120,180,"you can change circle number");
sleep(2);
outtextxy(240,240,"Made by lu");
sleep(2);
outtextxy(210,290,"press any key!");
getch();
cleardevice();
for(i=0;i<NUM;i++)
{xs[i]=XSPED;ys[i]=YSPED;
xloc[i]=random(560)+30;
yloc[i]=random(350)+30;
}

setfillstyle(SOLID_FILL,WHITE);
setcolor(YELLOW);

while(1)
{
cleardevice();
setcolor(YELLOW);
line(30,30,600,30);
line(600,30,600,400);
line(600,400,30,400);
line(30,400,30,30);
setcolor(RED);
for(i=0;i<NUM;i++)
{
circle(xloc[i],yloc[i],BAJ);
delay(1200);
if(sqrt(pow((xloc[0]-xloc[1]),2)+pow((yloc[0]-yloc[1]),2))<=2*BAJ||
sqrt(pow((xloc[0]-xloc[2]),2)+pow((yloc[0]-yloc[2]),2))<=2*BAJ||
sqrt(pow((xloc[0]-xloc[3]),2)+pow((yloc[0]-yloc[3]),2))<=2*BAJ||
sqrt(pow((xloc[0]-xloc[4]),2)+pow((yloc[0]-yloc[4]),2))<=2*BAJ||
sqrt(pow((xloc[1]-xloc[2]),2)+pow((yloc[1]-yloc[2]),2))<=2*BAJ||
sqrt(pow((xloc[1]-xloc[3]),2)+pow((yloc[1]-yloc[3]),2))<=2*BAJ||
sqrt(pow((xloc[1]-xloc[4]),2)+pow((yloc[1]-yloc[4]),2))<=2*BAJ||
sqrt(pow((xloc[2]-xloc[3]),2)+pow((yloc[2]-yloc[3]),2))<=2*BAJ||
sqrt(pow((xloc[2]-xloc[4]),2)+pow((yloc[2]-yloc[4]),2))<=2*BAJ||
sqrt(pow((xloc[3]-xloc[4]),2)+pow((yloc[3]-yloc[4]),2))<=2*BAJ)
{ys[i]=-ys[i];xs[i]=-xs[i];cot++;}

if(xloc[i]<=50||xloc[i]>=580)
{xs[i]=-xs[i];cot++; }
if(yloc[i]<=50||yloc[i]>=380)
{ ys[i]=-ys[i];cot++;}

xloc[i]+=xs[i];
yloc[i]+=ys[i];

}
}

getch();

}