Sie sind auf Seite 1von 6

/*

// this is a brick ball game

*/

#include<iostream.h>
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>

int cx,cy,xp,yp,initial,flag=0,score;
int incx,incy,game,count,width;
int left,right,bottom,top;
int b_left,b_top,b_right,b_bottom;
int arr[320][6];
union regs i,o;

/* functions for mouse movement */

void showptr()
{
i.x.ax=1;
int86(0x33,&i,&o);
}

int initmouse()
{
i.x.ax=0;
int86(0x33,&i,&o);
return(o.x.ax);
}

void hide()
{
i.x.ax=2;
int86(0x33,&i,&o);
}
void getbutton(int *button,int *x,int *y)
{
i.x.ax=3;
int86(0x33,&i,&o);
*button=o.x.ax;
*x=o.x.cx;
*y=o.x.dx;
}

/* code for moving brick through cursor */

void move_brick(int b_left,int b_top,int b_right,int b_bottom)


{
int button,x,y;

getbutton(&button,&x,&y);
x=b_left-x;
b_left=b_left-x;
b_right=b_right-x;
setcolor(12);
rectangle(b_left,b_top,b_right,b_bottom);
delay(1);
setcolor(0);
rectangle(b_left,b_top,b_right,b_bottom);
}

void draw_break()
{
for(count=0;count<320;count++)
{
setcolor(arr[count][1]);
if(arr[count][0]!=0)
rectangle(arr[count][2],arr[count][3],arr[count][4],arr[count][5]);
}
game=count;
}

void brick_break(int cx,int cy)


{
cx=cx-30;
cy=cy-14;
xp=cx/30;
yp=cy/14;
initial=19*(yp-1)+xp;

if(initial<320 && cy<=225 && cx<=570)


if(arr[initial][0]==1)
{
setcolor(0);
score+=arr[initial][1];

rectangle(arr[initial][2],arr[initial][3],arr[initial][4],arr[initial][5]);
game--;
arr[initial][0]=0;

if(incx==-1 && incy==-1)


incy=1;
else if(incx==-1 && incy==1)
incx=1;
else if(incx==1 && incy==1)
incy=-1;
else if(incx==1 && incy==-1)
incx=-1;

for(count=0;count<320;count++)
{
setcolor(arr[count][1]);
if(arr[count][0]!=0)
rectangle(arr[count][2],arr[count][3],arr[count][4],arr[count][5]);
}
}
}

void reflect()
{
if(incx==-1 && incy==-1)
incy=1;
else if(incx==-1 && incy==1)
incx=1;
else if(incx==1 && incy==1)
incy=-1;
else if(incx==1 && incy==-1)
incx=-1;
}

void check_cur(int cx,int cy)


{
width=15;
setcolor(4);
/*on right side checking*/
if(cx>=b_left+width && cx<=b_right && cy>=b_top-5)
{
incx=1;
incy=-1;
}
/*on left side checking*/
else if(cx<=b_left+width && cx>=b_left && cy>=b_top-5)
{
incx=-1;
incy=-1;
}
else if(cy>b_top)
{
flag=1;
}
}

/* main function */

int main(void)
{

int gdriver = detect, gmode, errorcode;


initgraph(&gdriver, &gmode, "d:\\borlandc\\bgi");

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 */
}

if(initmouse()==0)
{
closegraph();
restorecrtmode();
printf("mouse driver not loaded");
}

int midx = getmaxx() / 2;


int midy = getmaxy() / 2;
int del=0;
setbkcolor(8);
for(int h=0;h<20;h++)
{
settextjustify(center_text, center_text);
settextstyle(gothic_font, horiz_dir, 6);
outtextxy(midx, midy-100, "break boll game");
settextstyle(triplex_font, horiz_dir, 1);
outtextxy(midx+20,midy+20," amit gajjar");
settextstyle( sans_serif_font, horiz_dir, 1);
outtextxy(400-(h*2),midy+100,"please wait...");
delay(100);
setcolor(0);
outtextxy(400-(h*2),midy+100,"please wait...");
setcolor(++del);
line(200,190,450,190);
}
cleardevice();

left = 10;
top = 10;
right = 40;
bottom = 24;
int k;
k=rand();
count=0;

for(int i=0;i<16;i++)
{
for(int j=0;j<19;j++)
{
k=rand();
k=k%7;
if(k==0)
{k++;}
setcolor(k);
rectangle(left,top,right,bottom);
arr[count][0]=1;
arr[count][1]=k;
arr[count][2]=left;
arr[count][3]=top;
arr[count][4]=right;
arr[count][5]=bottom;
count++;
left=right+1;
right=left+31;
}
left=10;
top=bottom;
right=40;
bottom=top+14;
}

game=count;
char key;
int key_val;
int button,x,y;

cx=getmaxx()/2;
cy=getmaxy()-30;
b_left=cx-10;
b_top=getmaxy()-20;
b_right=cx+20;
b_bottom=getmaxy()-10;

incx=incy=-1;

while(!kbhit())
{
setcolor(0);
circle(cx,cy,5);
cx=cx+incx;
cy=cy+incy;
if(cx<=20)
reflect();
else if(cx>=getmaxx()-12)
reflect();
else if(cy<=30)
reflect();
else if(cy>=b_top-6)
check_cur(cx,cy); //reflect();
if(flag==1)
{
cleardevice();

settextjustify(center_text, center_text);
settextstyle(gothic_font, horiz_dir, 2);
setcolor(20);
outtextxy(midx, midy, "game over");
gotoxy(32,19);
cout<<"your score is :";
cout<<score<<endl;
if(game==0)
{
gotoxy(32,20);
cout<<"win the match";
}
else
{
gotoxy(32,20);
cout<<"loss match";
}
int col=0;
while(!kbhit())
{
delay(199);
setcolor(++col);
rectangle(210,230,430,260);
}
}
brick_break(cx,cy);
setcolor(12);
circle(cx,cy,5);
setcolor(0);
circle(cx-incx,cy-incy,5);

/* code for move brick and regenerate it */

getbutton(&button,&x,&y);
x=b_left-x;
b_left=b_left-x;
b_right=b_right-x;
setcolor(12);
rectangle(b_left,b_top,b_right,b_bottom);
delay(5);
setcolor(0);
rectangle(b_left,b_top,b_right,b_bottom);

if(game==0)
{
cleardevice();
gotoxy(32,13);
cout<<"game over"<<endl;
gotoxy(32,14);
cout<<"win mathch"<<score<<endl;
goto end;
}
}
end:
getch();
closegraph();
return 0;
}

Das könnte Ihnen auch gefallen