Saturday, July 26, 2008

A program to move a circle in a box.

#include
#include
#include
#include

#define DELAY 4
#define RADIUS 10

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int midx, midy;
int signx=1, signy=1;

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");

/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}

midx = getmaxx() / 2;
midy = getmaxy() / 2;
setcolor(getmaxcolor());

/* draw the circle and move it continously */
rectangle(0,0,getmaxx(), getmaxy());

while(!kbhit())
{
setcolor(WHITE);
circle(midx, midy, RADIUS);
delay(DELAY);
setcolor(BLACK);
circle(midx, midy, RADIUS);
midx=midx+signx*1;
midy=midy+signy*1;
if( (midx+RADIUS+1>= getmaxx()) || (midx-RADIUS-1 <= 0) )
signx=-signx;

if( (midy+RADIUS+1>=getmaxy()) || (midy-RADIUS-1<= 0))
signy=-signy;


}

/* clean up */
getch();
closegraph();
return 0;
}

No comments: