Annexure - 1A
PART A - Plan
Micro-Project Proposal
Name of micro project: Space Object Shooting Game
1.0 Brief Introduction
The space shooting game is made for fun. This game is made in C anguage with
graphics. In this game user should shoot the objects from space before they reach at
the bottom. When user complete the target within the given shoots level get increased.
User’s rocket speed and the object’s speed increases when the level of game increases.
2.0 Aim of the Micro-Project
This Micro - Project aims at
1. To aquire knowledge about Computer Graphics.
2. To use graphics functions to draw shapes, objects ,etc by inbuilt functions in CGR.
3. To develop C program to perform read and write operation to the given file
4. To use various graphics functions in Computer Graphics .
3.0 Action Plan
Week Details of Planned Planned Finish Name of Responsible Team
Activity Start Date Members
Date
Week Decide Tanmay Shindkar
1 subject for
micro
project.
Week Preparation Aftab Shaikh
2 and
submission Omkar Todakar
of Abstract
Week Collection of Amit Patil
3 data
Week Discussion Rihan Nardekar
4 and outline
of Content
Week Formulation Amit Patil
5 of content
Week Editing of Tanmay Shindkar
6 Content
Week Compilation Aftab Shaikh
7 of Report
and Omkar Todakar
Presentation
Week Final Rihan Nardekar
8 submission
of Micro
Project
4.0 Resources Required
Sr. No. Name of Specifications Qty Remarks
Resource/Material
1 Computer system Basic 1
configuration
2 Software Turbo C++ 1
3 Internet Google,etc
4 Books
<------------------------------------------------------------------------------->
Annexure - IIA
PART B
Format for Micro-Project Report
SPACE OBJECT SHOOTING GAME
1.0 Brief Description
The space shooting game is made for fun. This game is made in C anguage with
graphics. In this game user should shoot the objects from space before they reach at
the bottom. When user complete the target within the given shoots level get increased.
User’s rocket speed and the object’s speed increases when the level of game increases.
2.0 Aim of the Micro-Project
This Micro - Project aims at
1. To get knowledge of C programming.
2. To use graphics functions in C program.
3. To develop C program to perform read and write operation to the given file.
4. To use various graphics in C.
4.0 Actual Procedure Followed.
1. Decide subject for micro project.
2. Preparation and submission of Abstract
3. Collection of data
4. Discussion and outline of Content
5. Formulation of content
6. Editing of Content
7. Compilation of Report and Presentation
8. Final submission of Micro Project
5.0 Actual Resources Used
Sr. No. Name of Specifications Qty Remarks
Resource/Material
1 Computer system Basic 1
configuration
2 Software Turbo C++ 1
3 Internet
4 Books
6.0 Outputs of the Micro- Projects
PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<time.h>
int ch,s=4,i;
//int sx1=50,sx2=60,sy1=0,sy2=10;
char arr[20],shot[20],starts,help,arr1[20],arr2[20];
int x1=200,y1=350,x2=200,y2=350,i,bc1=100,bc2=150;
int y=400,x3=180,y3=390,x4=220,y4=390,k=0,bh=100,bh2=50;
int min=100,max=330,min1=101,max1=331;
int incre=2,level=50,lev=1,move=7;
void start()
{ setbkcolor(BLACK);
setcolor(BROWN);
bh=100;
bh2=50;
incre=2;
level=50;
lev=1;
move=7;
k=0;
s=4;
settextstyle(0,0,5); //10
outtextxy(100,140,"ROCKET SHOT");
settextstyle(3,0,2);
outtextxy(200,190,"Press s to start");
outtextxy(200,240,"Press h to help");
outtextxy(200,290,"Press e to exit");
}
void ghelp()
{ cleardevice();
setcolor(MAGENTA);
settextstyle(3,0,2);
outtextxy(0,120,"1.Press <- (left arrow key) for moving to the left side.");
outtextxy(0,145,"2.Press -> (right arrow key) for moving to the right side.");
outtextxy(0,170,"3.Press F key to fire on the space objects.");
outtextxy(0,195,"4.SHOTS :) Number of fire shot remaining.");
outtextxy(0,220,"5.LEVEL :) Difficuilty level.");
outtextxy(0,245,"6.TARGET :) Your aim. You need to get minimum target score");
outtextxy(90,270,"to completet the level");
outtextxy(0,295,"7.SCORE :) Your score. Hit the middle of the object to get");
outtextxy(90,320," high schore.");
setcolor(RED);
outtextxy(0,345,"TIP:) Your movement speed and the object's falling speed");
outtextxy(40,370,"increases when difficuilty level goes increased");
getch();
}
void loading()
{
cleardevice();
outtextxy(200,120,"LOADING");
for(i=150;i<350;i++)
{
putpixel(i,150,WHITE);
delay(20);
}
}
void rocket()
{
setcolor(6);
setfillstyle(SOLID_FILL,6);
line(x1,y1,x3,y3); //left
line(x2,y2,x4,y4); //right
line(x3,y3,x4,y4); //base
floodfill(x1+1,y3-1,6);
setcolor(62);
setfillstyle(SOLID_FILL, 62);
rectangle(x3,y3,x4,y4+40);
floodfill(x3+1,y3+1,62);
setcolor(RED);
setfillstyle(SOLID_FILL,RED);
line(x3+5,y4+40,x4-5,y4+40);
line(x3+5,y4+40,x3+5,y4+50);
line(x4-5,y4+40,x4-5,y4+50);
line(x3+5,y4+50,x3+10,y4+60);
line(x4-5,y4+50,x4-10,y4+60);
line(x3+10,y4+60,x3+10,y4+65);
line(x4-10,y4+60,x4-10,y4+65);
line(x3+10,y4+65,x3+20,y4+75);
line(x4-10,y4+65,x4-20,y4+75);
floodfill(x3+6,y4+41,RED);
setcolor(8);
setfillstyle(SOLID_FILL,8);
rectangle(x3-30,y3+10,x3,y3+30);
floodfill(x3-29,y3+11, 8);
setcolor(7);
setfillstyle(SOLID_FILL, 7);
rectangle(x3-25,y3+30,x3-5,y3+40);
floodfill(x3-24,y3+31, 7);
setcolor(RED);
setfillstyle(SOLID_FILL, RED);
line(x3-20,y3+40,x3-10,y3+40);
line(x3-20,y3+40,x3-20,y3+50);
line(x3-10,y3+40,x3-10,y3+50);
line(x3-10,y3+50,x3-15,y3+55);
line(x3-20,y3+50,x3-15,y3+55);
floodfill(x3-19,y3+41,RED);
setcolor(8);
setfillstyle(SOLID_FILL,8);
rectangle(x4+30,y4+10,x4,y4+30);
floodfill(x4+29,y4+11,8);
setcolor(7);
setfillstyle(SOLID_FILL,7);
rectangle(x4+25,y4+30,x4+5,y4+40);
floodfill(x4+6,y4+31,7);
setcolor(RED);
setfillstyle(SOLID_FILL,RED);
line(x4+20,y4+40,x4+10,y4+40);
line(x4+20,y4+40,x4+20,y4+50);
line(x4+10,y4+40,x4+10,y4+50);
line(x4+10,y4+50,x4+15,y4+55);
line(x4+20,y4+50,x4+15,y4+55);
floodfill(x4+11,y4+41,RED);
}
void target(int bc1,int bh)
{ setcolor(3);
setfillstyle(WIDE_DOT_FILL,3);
circle(bc1,bh,20); //200 200
floodfill(bc1+1,bh+1,3);
setcolor(WHITE);
line(bc1+20,bh,bc1+35,bh);
line(bc1-20,bh,bc1-35,bh);
line(bc1,bh+20,bc1,bh+35);
line(bc1,bh-20,bc1,bh-35);
}
void target2(int bc2,int bh2)
{ setcolor(10);
setfillstyle(HATCH_FILL,10);
circle(bc2,bh2,20);
floodfill(bc2+1,bh2+1,10);
setcolor(YELLOW);
setfillstyle(SOLID_FILL,YELLOW);
circle(bc2+25,bh2,5);
floodfill(bc2+26,bh2+1,YELLOW);
setcolor(YELLOW);
setfillstyle(SOLID_FILL,YELLOW);
circle(bc2-25,bh2,5);
floodfill(bc2-24,bh2+1,YELLOW);
setcolor(YELLOW);
setfillstyle(SOLID_FILL,YELLOW);
circle(bc2,bh2+25,5);
floodfill(bc2+1,bh2+26,YELLOW);
setcolor(YELLOW);
setfillstyle(SOLID_FILL,YELLOW);
circle(bc2,bh2-25,5);
floodfill(bc2+1,bh2-24,YELLOW);
}
void crst(int xx1,int xx2,int yy1,int yy2)
{ setcolor(WHITE);
line(xx1,yy1+5,xx2,yy1+5);//xx1=50,xx2=60,yy1=0,yy2=10
line(xx1+5,yy1,xx1+5,yy2);
line(xx1,yy1,xx2,yy2);
line(xx2,yy1,xx1,yy2);
}
void stars()
{ int sx1=50,sx2=60,sy1=0,sy2=10;
// xmin=50, xmax=350
//ymin=0, ymax=400
crst(sx1+10,sx2+10,sy1+10,sy2+10);
crst(sx1+20,sx2+20,sy1+30,sy2+30);
crst(sx1+30,sx2+30,sy1+40,sy2+40);
crst(sx1+60,sx2+60,sy1+30,sy2+30);
crst(sx1+250,sx2+250,sy1+30,sy2+30);
crst(sx1+200,sx2+200,sy1+60,sy2+60);
crst(sx1+230,sx2+230,sy1+200,sy2+200);
crst(sx1+100,sx2+100,sy1+80,sy2+80);
crst(sx1+20,sx2+20,sy1+330,sy2+330);
crst(sx1+50,sx2+50,sy1+300,sy2+300);
crst(sx1+20,sx2+20,sy1+200,sy2+200);
crst(sx1+200,sx2+200,sy1+230,sy2+230);
crst(sx1+150,sx2+150,sy1+180,sy2+180);
crst(sx1+20,sx2+20,sy1+30,sy2+30);
crst(sx1+100,sx2+100,sy1+120,sy2+120);
crst(sx1+50,sx2+50,sy1+300,sy2+300);
crst(sx1+70,sx2+70,sy1+340,sy2+340);
crst(sx1+280,sx2+280,sy1+320,sy2+320);
crst(sx1+250,sx2+250,sy1+380,sy2+380);
crst(sx1+180,sx2+180,sy1+270,sy2+270);
}
void main()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\Turboc3\\BGI");
detectgraph(&gd,&gm);
bc1=(rand()%(max-min+1))+min;
bc2=(rand()%(max1-min1+1))+min1;
do
{
cleardevice();
start();
starts=getch();
if(starts=='e')
exit(0);
else if(starts=='s')
{
loading();
settextstyle(1,0,3);
while(1)
{ cleardevice();
stars();
setcolor(WHITE);
/* line(50,20,50,400);
line(350,20,350,400); */
line(50,0,50,400);
line(350,0,350,400);
setcolor(52);
setfillstyle(SOLID_FILL,BLACK);
rectangle(50,0,350,470);
rectangle(350,0,650,470);
floodfill(51,351,52);//52
sprintf(arr2,"LEVEL = %d",lev);
outtextxy(450,60,arr2);
sprintf(arr,"SCORE = %d",k);
outtextxy(450,100,arr);
sprintf(shot,"SHOTS = %d",s);
outtextxy(450,120,shot);
sprintf(arr1,"TARGET = %d",level);
outtextxy(450,80,arr1);
rocket();
y=y1;
target(bc1,bh);
target2(bc2,bh2);
if(kbhit())
{
ch=getch();
if(ch=='e')
break;
else if(ch=='f')
{ s--;
if(s>=0)
{
for(i=0;i<100;i=i+10)
{ cleardevice();
target(bc1,bh);
target2(bc2,bh2);
rocket();
line(x1,y,x2,y-20);//bullet x=200,y=390
// cleardevice();
y=y-20;
delay(100);
}
if(x1>bc1-30&&x1<bc1+30)
{
cleardevice();
if(x1>=bc1-30&&x1<=bc1-20||x1<=bc1+30&&x1>=bc1+20)
{ k=k+5;
outtextxy(300,200,"5 points");
}
else if(x1>=bc1-20&&x1<=bc1-10||x1<=bc1+20&&x1>=bc1+10)
{ k=k+10;
outtextxy(300,200,"10 points");
}
else if(x1>bc1-10&&x1<bc1||x1>bc1&&x1<bc1+10||x1==bc1)
{ k=k+20;
outtextxy(300,200,"15 points");
}
delay(30);
goto label;
}
else if(x1>bc2-20&&x1<bc2+20)
{ cleardevice();
if(x1>=bc2-30&&x1<=bc2-20||x1<=bc2+30&&x1>=bc2+20)
{k=k+5;
outtextxy(300,200,"5 points");
}
else if(x1>=bc2-20&&x1<=bc2-10||x1<=bc2+20&&x1>=bc2+10)
{ k=k+10;
outtextxy(300,200,"10 points");
}
else if(x1>bc2-10&&x1<bc2||x1>bc2&&x1<bc2+10||x1==bc2)
{ k=k+20;
outtextxy(300,200,"15 points");
}
delay(100);
goto key;
}
}
else if(s<0)
{outtextxy(200,200,"no more shots remaining");
if(k>=level)
{ cleardevice();
s=5;
incre=incre+3;
level=level+10;
k=0;
lev++;
outtextxy(300,300,"LEVEL INCREASED");
// outtextxy(280,320,"FOR CONTIUNE PRESS ANY
KEY");
//getch();
if(k>level+20)
{
move=move+2;
}
delay(200);
}
else if(k<level)
{ cleardevice();
outtextxy(300,300,arr2);
getch();
delay(200);
break;
}
}
}
else if(ch==77) //right
{
if(x4>=340)
{
x1=x1+0;
x2=x2+0;
x3=x3+0;
x4=x4+0;
}
else
{
x1=x1+move;
x2=x2+move;
x3=x3+move;
x4=x4+move;
}
}
else if(ch==75) //left
{
if(x3<=50)
{
x1=x1-0;
x2=x2-0;
x3=x3-0;
x4=x4-0;
}
else
{
x1=x1-move;
x2=x2-move;
x3=x3-move;
x4=x4-move;
}
}
else if(ch=='e')
break;
delay(10);
}
if(bh<=400||bh2<=400)
{
bh=bh+incre;
bh2=bh2+incre+1;
}
else if(bh>400||bh2>400)
{
if(k>=50)
{
cleardevice();
outtextxy(200,200,"YOU WIN");
delay(50);
break;
}
else if(k<50)
{
cleardevice();
outtextxy(200,200,"YOU LOST");
delay(50);
break;
}
}
else
{ label:
srand(time(NULL));
bc1=(rand()%(max-min+1))+min;
key:
bc2=(rand()%(max1-min1+1))+min1;
bh=100;
bh2=50;
}
delay(100);
}
}
else if(starts=='h'||starts=='H')
ghelp();
}while(starts!='e'||starts!='E');
getch();
closegraph();
OUTPUT:
7.0 Skill Developed /learning out of this Micro-Project
1. Working with team.
2. Logic development.
3. Solving logical problems.
4. Error handling
*************************************************************