0% found this document useful (0 votes)
79 views24 pages

Ballon Documentation1

This document describes a C++ program for a balloon shooting game. The program uses graphics functions to display balloons moving across the screen, a bow and arrow that can be moved and fired to shoot the balloons. When a balloon is hit, it bursts and the player scores points. The game ends when all balloons or arrows are gone. The program code includes functions to draw and animate the game objects, handle input and movement, detect collisions, and track score and game state.

Uploaded by

Svg Agarbatti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views24 pages

Ballon Documentation1

This document describes a C++ program for a balloon shooting game. The program uses graphics functions to display balloons moving across the screen, a bow and arrow that can be moved and fired to shoot the balloons. When a balloon is hit, it bursts and the player scores points. The game ends when all balloons or arrows are gone. The program code includes functions to draw and animate the game objects, handle input and movement, detect collisions, and track score and game state.

Uploaded by

Svg Agarbatti
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Computer project

computer

INDEX

1. OBJECTIVE

2. PROJECT DESCRIPTION

3. HEADER FILES

4. PROGRAM

5. OUPUT
INTRODUCTION

This Project was done by using C++. BALLOON SHOOTING GAME


is one of the most popular games which are a best entertainer and it can be
played by people of age groups around the globe.

OBJECTIVE

It is one of the best time pass game played World-wide by all computer
game lovers. It may be a simple game but it helps us to refresh and relax our
minds in the best way and also improves our concentration skills.

PROJECT DESCRIPTION

The balloon shooting game is a computer game for a single player in this
game the arrow can be moved up and down for shooting the balloon and you
score 20 points every time you shoot a balloon. Each level has a particular
points you have to score to enter the next level.

Here we have made the basic program based on which this game work.
PROGRAM CODING

//C > Games and Graphics Code Examples

//Balloon Shooting - A Game ( Mini Project )

# 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:\\turbo\c3\\bgi");
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*BALLOON_SIZE);
balloon=malloc(area);
getimage(p-4*BALLOON_SIZE,q-
5*BALLOON_SIZE,p+4*BALLOON_SIZE,q+7*BALLOON_SIZE,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)
y+=25;
putimage(x,y-65,bow,XOR_PUT);
draw_bow(x-25,y);
key=0;
}
if (key == 72 &&!flag_arrow)
{
x=125;
putimage(x,y-65,bow,XOR_PUT);
if(y>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,"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);
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();
}
OUTPUT
THANK
YOU

You might also like