#include
#include
#include
#include
#include
 union REGS i, o ;
 int x1,y1,click;
 int count=1;
 char *comments[]={
		 		 		 " ",
		 		 		 "Amazed ?...Try it again!",
		 		 		 "C'mon give yourself a chance!",
		 		 		 "You can do it !",
		 		 		 "Think about $ 1 Million!",
		 		 		 "Don't give up !",
		 		 		 "LOOSER..!!",
		 		 		 "Sorry..You loose !"
		 		 		 };
void main()
{
 int x=50,y=50,gdriver = 9, gmode=2;
 initgraph(&gdriver, &gmode, "c:\tc\bgi");
 setcolor(LIGHTRED);
 settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);
 outtextxy(240,200,"Developed by :");
 outtextxy(240,250,"WWW");
 rectangle(210,170,420,300);
 settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
 outtextxy(200,400,"Hit any key to continue.........");
 getch();
 cleardevice();
 showmouseptr();
 setbkcolor(9); //sets the backgroundcolour.
 setcolor(YELLOW);
 outtextxy(20,445,"CLICK ON THE BUTTON "VNIT"");
 unpressed(290,430,"EXIT");
 unpressed(x,y,"VNIT");
 while(1)//infinite loop.
 {
		 getmousepos();
		 if(x1 >= x && x1 <= x+50 && y1 >= y && y1 <= y+30 )//checks if the
mouse pointer is over the button.
		 { //where
x,x+50,y,y+50 are ((x,y))top,(x,y)bottom)co-ordinates.
		 		 hidemouseptr();
		 		 erasebutton(x,y);
		 		 x=random(600);
		 		 y=random(400);
		 		 //checks whether count=1 so as to display the button on the new
position for only once.
		 		 setcolor(9);
		 		 outtextxy(380,445,comments[count-1]);//to erase previousely written
things
		 		 setcolor(YELLOW);
		 		 outtextxy(380,445,comments[count]);
		 		 count++;
		 		 if(count==9)
		 		 {
		 		 setcolor(9);
		 		 outtextxy(380,445,comments[8]);//to erase previousely written
things
		 		 setcolor(YELLOW);
		 		 outtextxy(380,445,comments[1]);
		 		 count=2;
		 		 }
		 		 unpressed(x,y,"VNIT");
		 		 showmouseptr();
		 }
		 if(x1>=290&&x1<=340&&y1>=430&&y1<=460 && click==1)//checks if the mouse
pointer is over the "EXIT" button.
		 { //for click==1 refer
to mousepos.h.
		 		 hidemouseptr();
		 		 pressed(290,430,"EXIT");
		 		 showmouseptr();
		 		 sound(1200);
		 		 delay(100);
		 		 nosound();
		 		 while(click!=0)
		 		 getmousepos();
		 		 break;
		 }
 }
 closegraph();
 restorecrtmode();
}
 unpressed(int x,int y,char *string) //display's an unpressed button.
 {
		 setfillstyle(SOLID_FILL,CYAN);//sets the fill pattern and colour.
		 bar(x, y, x+50, y+30);//creates a box and the box is automatically
filled with the chosen colour.
		 setcolor(LIGHTCYAN);
		 line(x,y,x+50,y);//creates a white line just over the box.
		 line(x,y,x,y+30);
		 setcolor(EGA_DARKGRAY);
		 line(x,y+30,x+50,y+30);//creates a dark line just below the box.
		 line(x+2,y+31,x+50,y+31);
		 line(x+50,y,x+50,y+30);
		 line(x+51,y,x+51,y+31);
		 setcolor(BLUE);
		 outtextxy(x+10,y+12,string);//displays text on the box.
		 return 0;
 }
 pressed(int x,int y,char *string)
 {
		 setfillstyle(SOLID_FILL,CYAN);
		 bar(x, y, x+50, y+30);
		 setcolor(EGA_DARKGRAY);
		 line(x,y,x+50,y);
		 line(x-1,y-1,x+51,y-1);
		 line(x,y,x,y+30);
		 line(x-1,y-1,x-1,y+30);
		 setcolor(LIGHTCYAN);
		 line(x,y+30,x+50,y+30);
		 line(x-1,y+31,x+50,y+31);
		 line(x+50,y,x+50,y+30);
		 line(x+51,y-1,x+51,y+31);
		 setlinestyle(DOTTED_LINE,1,NORM_WIDTH);
		 setcolor(EGA_DARKGRAY);
		 rectangle(x+4,y+4,x+46,y+26);//creates a dotted rectangle over the
box.
		 setcolor(BLUE);
		 outtextxy(x+10,y+12,string);
		 return 0;
 }
 erasebutton(int x,int y)//erases button.
 {
		 setfillstyle(SOLID_FILL,getbkcolor());//gets the background colour
		 bar(x, y-1, x+51, y+31); // and fills the box with the
SOLID_FILL pattern.
		 return 0;
 }
 showmouseptr( ) //shows the mouse-pointer.
 {
		 i.x.ax = 1 ;
		 int86 ( 0x33, &i, &o ) ;
		 return 0;
 }
 hidemouseptr()//hides the mouse pointer.
 {
		 i.x.ax=2;
		 int86(51,&i,&o);//note:-0x33(hex)รท51(dec).
		 return 0;
 }
 getmousepos() //finds the mouse-pointer position.
 {
		 i.x.ax = 3 ;
		 int86 ( 0x33, &i, &o ) ;
		 click = o.x.bx ;// if the left click button is pressed then click=1.
		 x1 = o.x.cx ; //x co-ordinate.
		 y1 = o.x.dx ; //y co-ordinate.
		 return 0;
 }