Código fuente de escritorio privado de red
# include & ltstdio.h & gt
# include & ltgraphics.h & gt
# include & ltmath. gt
# incluir & ltstdlib.h & gt
# incluir & ltdos.h & gt
# incluir & lttime.h & gt p>
# include & ltbios.h & gt
#Definir el valor máximo de 12
estructura typedef
{
Float Punto x, y;
Punto flotante vx, vy;
int color
}bola
void main()
{
int gd=DETECT, gm, I, j, k, t;
bola ba[MAX]; punto dt = 7e-2;
int issuit(ball *, int I
void hitpro(ball*, int, int
registerbgidriver); (EGA VGA _ controlador);
init graph(&gd,&gm,"";
srand(time(NULL));
for(I = 0;i<MAXi++)
{
ba[i]. y=(rand()% 3+1)* 116;
if (!issuit(ba,I)){ I-;continue;}
VX = rand() % 50-25;
Ba[i]. vy = rand()%
Ba[I]. p>}
color = 14;
color = 13;
mientras(!bioskey(1))
{ p>
for(I = 0;i<MAXi++)
{
Ba[i] x+=ba[i]. & ltMAXj++)
{
for(k = j+1; k & ltMAXk++) hitpro(ba,j,k);
if (ba[ j].x & lt51 |ba[j].x & gt589)ba[j]. vx=-ba[j]. VX;
if (ba[j].y & lt51 | |ba[j].y & gt429)ba[j]. vy=-ba[j]. vy;
}
borrar dispositivo();
for(I = 0;i<4*max;i++)
{
t = i % MAX
setcolor(ba[t].color);
circle(ba[t].x,ba[t] .
y, 50);
}
Retraso (2000);
}
closegraph(); >}
int issuit( bola *b1, int n)
{
int i, a, b, c, d;
a=b1[n]. x;
b=b1[n]. y;
for(I = 0;i<n;i++)
{
c=b1[i]. x;
d=b1[i]. y;
if(a == c & amp; & ampb==d) devuelve 0
}
devuelve 1; p>}
void hitpro(ball *ba, int j, int k)
{
flotador r, a, b, c, d, tx1 , tx2, ty1, ty2, tem
tem=(ba[k].x-ba[j].x)*(ba[k].x-ba[j].x)+( ba[k].y-ba[j].y)*(ba[k].y-ba[j].y);
r = sqrt(tem);
if(r & gt; 102.0) devuelve;
a=(ba[k].x-ba[j].x)/r;
b=(ba [k]. y-ba[j]. y)/r;
c =-b;
d = a; c * c+d * d);
c/= r;
d/=
tx1=ba[j]. vx*a+ba[j]. vy * b;
ty1=ba[j]. vx*c+ba[j]. vy * d;
tx2=ba[k]. vx*a+ba[k]. vy * b;
ty2=ba[k]. vx*c+ba[k]. vy * d;
Ba[j]. VX = tx2 * a+ty 1 * c;
Ba[j]. vy = tx2 * b+ty 1 * d;
ba[k]. VX = tx 1 * a+ty2 * c;
barra[k]. vy = tx 1 * b+ty2 * d;
}