Ballon Fighter Game in C


Program to create Ballon Fighter Game in C, a lovely game, nice to play...Enjoy.. :)



# include "graphics.h"
# include "conio.h"
# include "stdio.h"
# include "stdlib.h"
# include "dos.h"
#define ARROW_SIZE 7
#define BALLOON_SIZE 3

int flag_arrow=0,flag_balloon=1,count_arrow=6,count_balloon=10;
void *balloon,*bow,*arrow,*burst;
void *clear_balloon,*clear_burst;
void draw_balloon(int ,int );
void draw_burst ( int x, int y );
void draw_bow(int x,int y);
void draw_arrow(int x, int y);
void shoot(int *x, int *y);
int testkeys();
void fly(int *x, int *y);
void start();

void main()
{
int gmode = DETECT, gdriver , area ;
initgraph ( &gmode, &gdriver, "c: c gi" ) ;
setbkcolor(1);
start();
int maxx = getmaxx() ;
int maxy = getmaxy() ;
int
p=400,q=300,m=100,n=100,x=m,y=n,key,score=0,finish=0,level=1,l_flag=1;
char score1[5],ch,cnt_ball[5],char_level[2];

rectangle ( 0, 0, maxx, maxy - 10 ) ;

draw_burst(200,300);
area=imagesize(0,0,32,24);
burst=malloc(area);
getimage(200-16,300-12,200+16,300+12,burst);
putimage(200-16,300-12,burst,XOR_PUT);

draw_balloon(p,q);

area=imagesize(p-4*BALLOON_SIZE,q-5*BALLOON_SIZE,p+4*BALLOON_SIZE,q+7*BALL
OON_SIZE);
balloon=malloc(area);

getimage(p-4*BALLOON_SIZE,q-5*BALLOON_SIZE,p+4*BALLOON_SIZE,q+7*BALLOON_SI
ZE,balloon);
putimage(p-4*BALLOON_SIZE, q-5*BALLOON_SIZE, balloon, COPY_PUT);

draw_arrow(x ,y );
area = imagesize(x, y-ARROW_SIZE, x+(6*ARROW_SIZE), y+ARROW_SIZE);
arrow=malloc(area);
getimage(x, y-ARROW_SIZE, x+(6*ARROW_SIZE), y+ARROW_SIZE,arrow);
putimage(x, y-ARROW_SIZE,arrow,XOR_PUT);

draw_bow(x,y);
area=imagesize(x+25,y-65,x+66,y+65);
bow=malloc(area);
getimage(x+25,y-65,x+66,y+65,bow);

if ( balloon == NULL || burst == NULL || bow == NULL )
{
printf( "
Insufficient memory... Press any key " ) ;
getch() ;
closegraph() ;
restorecrtmode() ;
exit( 0 ) ;
}

while (!finish)
{
settextstyle(8,0,1);
setusercharsize(4,4,3,3);
outtextxy(getmaxx()/2-100,5,"LEVEL : ");
itoa(level,char_level,10);
setfillstyle(0,0);
bar(getmaxx()/2+40,15,getmaxx()/2+70,45);
outtextxy(getmaxx()/2+50,5,char_level);

rectangle(5,360,250,460);

if( flag_balloon && count_balloon>0 )
fly( &p, &q );
else
{
q = 400;
flag_balloon = 1;
}

if( kbhit() )
{
key = testkeys();
if(key==77)
flag_arrow = 1;
}

if( key == 27 )
break;
if (key == 80 &&!flag_arrow)
{
x=125;
putimage(x,y-65,bow,XOR_PUT);
if(y<300) key="0;" key ="=" x="125;">70)
y-=25;
putimage(x,y-65,bow,XOR_PUT);
draw_bow(x-25,y);
key=0;
}
if(count_arrow > 0 && count_balloon > 0)
{
if(score==100 && l_flag==1)
{
level=2;
count_balloon=8;
count_arrow=6;
l_flag=2;
}
if(score==180 && l_flag==2)
{
level=3;
count_balloon=6;
count_arrow=6;
l_flag=0;
}
if( key == 77 || flag_arrow)
{
shoot(&x,&y);
draw_bow(m,y);
if(x>(p-12) && x<(p+12) && y>(q-15) && y<(q+25)) { putimage(p-16,q-12,burst,COPY_PUT); sound(1500); delay(800); nosound(); putimage(p-16,q-12,burst,XOR_PUT); count_balloon--; settextstyle(10,0,1); setusercharsize(30,70,20,70); outtextxy(20,380,"Yippee! BALLOONS LEFT:"); setfillstyle(0,0); bar(200,370,230,400); itoa(count_balloon,cnt_ball,10); outtextxy(200,380,cnt_ball); flag_balloon=0; score+=20; itoa(score,score1,10); setfillstyle(0,0); bar(190,getmaxy()-50,230,getmaxy()-30); setcolor(RED); outtextxy(20,getmaxy()-50,"SCORE : "); outtextxy(190,getmaxy()-50,score1); } key=0; } } else { clearviewport(); setbkcolor(9); setcolor(10); settextstyle(4,0,7); setusercharsize(120,50,120,40); outtextxy(getmaxx()/2-220,getmaxy()/2-180,"GAME OVER"); settextstyle(8,0,1); setusercharsize(50,60,40,50); if(count_arrow<=0) outtextxy(getmaxx()/2-100,getmaxy()/2-70,"NO MORE ARROWS"); if(count_balloon<=0) outtextxy(getmaxx()/2-120,getmaxy()/2-70,"NO MORE BALLOONS"); outtextxy(getmaxx()/2-120,getmaxy()/2-20,"YOUR SCORE IS : "); itoa(score,score1,10); outtextxy(getmaxx()/2+150,getmaxy()/2-20,score1); if(level==1) outtextxy(getmaxx()/2-220,getmaxy()/2+20,"YOU REQUIRE TO PRACTICE MORE"); if(level==2) outtextxy(getmaxx()/2-70,getmaxy()/2+20,"WELL PLAYED"); if(level==3) outtextxy(getmaxx()/2-220,getmaxy()/2+20,"YOU ARE AN EFFICIENT SHOOTER"); outtextxy(getmaxx()/2-30,getmaxy()/2+50,"(Q)UIT"); settextstyle(1,0,1); setusercharsize(30,65,30,60); outtextxy(30,430,"THIS GAME HAS BEEN DEVELOPED BY RUCHIR BINDAL AND VINAY KUMAR GUPTA"); outtextxy(230,450,"THIRD YEAR, COMPUTER SCIENCE AND ENGINEERING"); while( getch() != 'q'); finish=1; break; } } free(bow); free(arrow); free(balloon); closegraph(); } void draw_balloon(int x,int y) { setcolor(RED); setfillstyle(1,RED); fillellipse(x,y,3*BALLOON_SIZE,4*BALLOON_SIZE); line(x,y+4*BALLOON_SIZE,x,y+6*BALLOON_SIZE); } void draw_burst ( int x, int y ) { setlinestyle(0,0,1); line ( x - 16, y - 12, x - 10, y - 2 ) ; line ( x - 10, y - 2, x - 16, y ) ; line ( x - 16, y, x - 10, y + 2 ) ; line ( x - 10, y + 2, x - 16, y + 12 ) ; line ( x - 16, y + 12, x - 6, y + 2 ) ; line ( x - 6, y + 2, x, y + 12 ) ; line ( x, y + 12, x + 6, y + 2 ) ; line ( x + 6, y + 2, x + 16, y + 12 ) ; line ( x - 16, y - 12, x - 6, y - 2 ) ; line ( x - 6, y - 2, x, y - 12 ) ; line ( x, y - 12, x + 6, y - 2 ) ; line ( x + 6, y - 2, x + 16, y - 12 ) ; line ( x + 16, y - 12, x + 10, y - 2 ) ; line ( x + 10, y - 2, x + 16, y ) ; line ( x + 16, y, x + 10, y + 2 ) ; line ( x + 10, y + 2, x + 16, y + 12 ) ; } void draw_bow(int x,int y) { setcolor(RED); setlinestyle(0,0,1); line(x+32,y-49,x+32,y+49); setlinestyle(0,0,3); arc(x,y,300,60,60); arc(x+34,y-56,100,220,6); arc(x+34,y+56,140,260,6); } void shoot(int *x, int *y) { char cnt_arrow[5]; putimage(*x, *y-ARROW_SIZE, arrow, COPY_PUT); delay(3); putimage(*x, *y-ARROW_SIZE, arrow, XOR_PUT); *x+=ARROW_SIZE; if (*x>590)
{
*x=155;
flag_arrow=0;
count_arrow--;
settextstyle(10,0,1);
setusercharsize(30,70,20,70);
outtextxy(20,400,"ARROWS LEFT :");
setfillstyle(0,WHITE);
bar(200,400,220,425);
itoa(count_arrow,cnt_arrow,10);
outtextxy(200,400,cnt_arrow);
}

}
void draw_arrow(int x, int y)
{
setlinestyle(0,0,2);
moveto(x, y);
linerel(6*ARROW_SIZE, 0);
linerel(-2*ARROW_SIZE, -1*ARROW_SIZE+1);
linerel(0, 2*ARROW_SIZE-1);
linerel(2*ARROW_SIZE, -1*ARROW_SIZE);
}

int testkeys()
{
union REGS ii, oo ;
ii.h.ah = 0 ;
int86 ( 22, &ii, &oo ) ;
/* if ascii code is not 0 */
if ( oo.h.al )
return ( oo.h.al ) ; /* return ascii code */
else
return ( oo.h.ah ) ; /* return scan code */
}

void fly(int *x, int *y)
{
int x1;
putimage(*x-4*BALLOON_SIZE, *y-5*BALLOON_SIZE, balloon, COPY_PUT);
delay(20);
char cnt_ball[5];
putimage(*x-4*BALLOON_SIZE, *y-5*BALLOON_SIZE, balloon, XOR_PUT);
*y-=BALLOON_SIZE;

if(*y<= 20) { *y=400; x1=450+rand()%150; *x=x1; count_balloon--; settextstyle(10,0,1); setusercharsize(30,70,20,70); outtextxy(20,380,"BALLOONS LEFT:"); setfillstyle(0,0); bar(200,370,230,400); itoa(count_balloon,cnt_ball,10); outtextxy(200,380,cnt_ball); } } void start() { setbkcolor(0); settextstyle(7,0,0); outtextxy(10,400," PRESS ANY KEY TO CONTINUE...."); settextstyle(1,0,0); setcolor(4); setusercharsize(25,15,20,4); outtextxy(85,120,"BALLOON SHOOTING"); float octave[7] = { 130.81, 146.83, 164.81, 174.61, 196, 220, 246.94 }; while( !kbhit() ) { sound( octave[ random(7) ]*4 ); delay(300); } nosound(); getch(); clearviewport(); rectangle(1,1,638,478); settextstyle(3,0,1); setusercharsize(50,30,50,30); outtextxy(150,10,"INSTRUCTIONS"); setbkcolor(10); settextstyle(1,0,1); setusercharsize(40,70,20,20); outtextxy(10,70,"1. You can play three levels."); outtextxy(10,110,"2. You can move the bow UP and DOWN with the help of arrow keys."); outtextxy(10,150,"3. Press right arrow key to shoot the arrow."); outtextxy(10,190,"4. You score 20 points every time you shoot the balloon."); outtextxy(10,230,"5. First level has 6 arrows and 10 balloons."); outtextxy(10,270,"6. You require to score 100 points to enter the second level."); outtextxy(10,310,"7. Second level has 6 arrows and 8 balloons."); outtextxy(10,350,"8. You require to score 200 points to enter the third level."); outtextxy(10,390,"9. Third level has 6 arrows and 6 balloons."); settextstyle(7,0,1); outtextxy(150,430,"PRESS ANY KEY TO CONITINUE"); getch(); setusercharsize(1,1,1,1); settextstyle(0,0,0); setbkcolor(10); clearviewport(); }

Related Links :

No comments:

Post a Comment


If you face any Problem in viewing code such as Incomplete "For Loops" or "Incorrect greater than or smaller" than equal to signs then please collect from My Web Site CLICK HERE


More Useful Topics...

 

History Of C..

In the beginning was Charles Babbage and his Analytical Engine, a machine
he built in 1822 that could be programmed to carry out different computations.
Move forward more than 100 years, where the U.S. government in
1942 used concepts from Babbage’s engine to create the ENIAC, the first
modern computer.
Meanwhile, over at the AT&T Bell Labs, in 1972 Dennis Ritchie was working
with two languages: B (for Bell) and BCPL (Basic Combined Programming
Language). Inspired by Pascal, Mr. Ritchie developed the C programming
language.

My 1st Program...


#include
#include
void main ()
{
clrscr ();
printf ("\n\n\n\n");
printf ("\t\t\t*******Pankaj *******\n");
printf ("\t\t\t********************************\n");
printf ("\t\t\t\"Life is Good...\"\n");
printf ("\t\t\t********************************");
getch ();
}

Next Step...


#include
#include

void main ()
{
clrscr ();
printf ("\n\n\n\n\n\n\n\n");
printf ("\t\t\t --------------------------- \n\n");

printf ("\t\t\t | IGCT, Info Computers, INDIA | \n\n");
printf ("\t\t\t --------------------------- ");

getch ();

}

Hits!!!