عنوان 

 سورس بازی زیبای تانک سی پلاس

نوع فایل

فرمت

سورس زبان سی پلاس پلاس

CPP , EXE

پیش نمایش از سورس کد پروژه

#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<process.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
#include<dos.h>
#include<stdio.h>
int xmax,ymax;
float a[3][3],b[3][1],c[3][1];
struct rect
{ int l,t,r,b;
};
rect m[3];

///////////////////////////////////////////////////////////////////////
// ۲-D TRANSFORMATION MATRICES
///////////////////////////////////////////////////////////////////////

void init(float x, float y)
{ b[0][0]=x;
b[1][0]=y;
b[2][0]=1.0;
}
void transfer()
{ b[0][0]=c[0][0];
b[0][1]=c[0][1];
b[0][2]=c[0][2];
}
void mul()
{ float s;
for(int i=0;i<3;i++)
for(int j=0;j<1;j++)
{ s=0.0;
for(int k=0;k<3;k++)
s+=a[i][k]*b[k][j];
c[i][j]=s;
}
transfer();
}
void inita()
{ for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
if(i==j)
a[i][j]=1.0;
else
a[i][j]=0.0;
}
void translate(float xf,float yf)
{ inita();
a[0][2]=xf;
a[1][2]=yf;
mul();
}
void rotate(float ang)
{ ang*=-1.0;
inita();
float cosang,sinang;
cosang=cos(double(ang)/180.0*22.0/7.0);
sinang=sin(double(ang)/180.0*22.0/7.0);
a[1][1]=a[0][0]=cosang;
a[0][1]=-sinang;
a[1][0]=sinang;
mul();
}
void scale(float sx,float sy)
{ inita();
a[0][0]=sx;
a[1][1]=sy;
mul();
}

//////////////////////////////////////////////////////////////////////
// SIMULATION OF TEXT BOX
// ARGUMENTS
// ۱٫ LEFT COORDINATE (l)
// ۲٫ TOP COORDINATE (t)
// ۳٫ RIGHT COORDINATE (r)
// ۴٫ BOTTOM COORDINATE (b)
// ۵٫ TEXT TO B DISPLAYED (text)
//////////////////////////////////////////////////////////////////////

void text(int l, int t,int r,int b,char text[])
{ setfillstyle(1,15);
bar(l,t,r,b);
setcolor(1);
rectangle(l,t,r,b);
settextstyle(11,0,1);
setcolor(12);
outtextxy(l+5,t+5,text);
}

/////////////////////////////////////////////////////////////////////////
// SCOREDISPLAY CALLS THIS FUNCTION
// ARGUMENTS
// ۱٫ LEFT, TOP, RIGHT AND BOTTOM COORDINATES (coor)
// ۲٫ DIGIT TO BE SHOWN (value)
/////////////////////////////////////////////////////////////////////////
void digit(rect coor,int value)
{ switch(value)
{ case 0 : rectangle(coor.l,coor.t,coor.r,coor.b);
break;
case 1 : line((coor.l+coor.r)/2,coor.t,(coor.l+coor.r)/2,coor.b);
break;
case 2 : line(coor.l,coor.t,coor.r,coor.t);
line(coor.l,coor.b,coor.r,coor.b);
line(coor.l,340,coor.r,340);
line(coor.l,340,coor.l,coor.b);
line(coor.r,coor.t,coor.r,340);
break;
case 3 : line(coor.l,coor.t,coor.r,coor.t);
line(coor.l,coor.b,coor.r,coor.b);
line(coor.l,340,coor.r,340);
line(coor.r,coor.t,coor.r,coor.b);
break;
case 4 : line(coor.r,coor.t,coor.r,coor.b);
line(coor.l,340,coor.r,340);
line(coor.l,coor.t,coor.l,340);
break;
case 5 : line(coor.l,coor.t,coor.r,coor.t);
line(coor.l,coor.b,coor.r,coor.b);
line(coor.l,340,coor.r,340);
line(coor.r,340,coor.r,coor.b);
line(coor.l,coor.t,coor.l,340);
break;
case 6 : line(coor.l,coor.t,coor.r,coor.t);
line(coor.l,coor.b,coor.r,coor.b);
line(coor.l,340,coor.r,340);
line(coor.l,coor.t,coor.l,coor.b);
line(coor.r,coor.b,coor.r,340);
break;
case 7 : line(coor.l,coor.t,coor.r,coor.t);
line(coor.r,coor.t,(coor.l+coor.r)/2,coor.b);
break;
case 8 : line(coor.l,coor.t,coor.r,coor.t);
line(coor.l,coor.b,coor.r,coor.b);
line(coor.l,340,coor.r,340);
line(coor.l,coor.t,coor.l,coor.b);
line(coor.r,coor.t,coor.r,coor.b);
break;
case 9 : line(coor.l,coor.t,coor.r,coor.t);
line(coor.l,coor.b,coor.r,coor.b);
line(coor.l,340,coor.r,340);
line(coor.r,coor.t,coor.r,coor.b);
line(coor.l,coor.t,coor.l,340);
break;
case -1 : line(coor.l,340,coor.r,340);
break;
};
}

//////////////////////////////////////////////////////////////////////
// FOR FINAL SCORE DISPLAY
// ARGUMENTS
// ۱٫ SCORE (score)
//////////////////////////////////////////////////////////////////////

void scoredisp(int score)
{ int d[4],n=0,flag=0,i=0,z=0,value;
char ch[10];
if(score<0)
{ n++;
flag=1;
score*=-1;
}
if((score/100))
n+=3;
else
if(score/10)
n+=2;
else
n+=1;
do
{ d[i++]=score%10;
score/=10;
}while(i<(n-flag));
m[0].l=322;
m[0].t=330;
m[0].r=332;
m[0].b=350;
m[1].l=334;
m[1].t=330;
m[1].r=344;
m[1].b=350;
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,”c:\\tc\\bgi”); settextstyle(4,0,10);
settextstyle(1,0,7);
setcolor(6);
outtextxy(240,1,”YOUR”);
outtextxy(100,100,”FINAL SCORE IS”);
sprintf(ch,”%d”,score);
for(z=0;z<10;z++)
{ setfillstyle(1,0);
bar(50,200,550,480);
init(m[0].l,m[0].t);
translate(-320,-340); //translate by x,y,and pt. 2 b translated
scale(z,z);
translate(320,340);
m[2].l=c[0][0];
m[2].t=c[1][0];
init((float)m[0].r,(float)m[0].b);
translate(-320,-340); //translate by x,y,and pt. 2 b translated
scale(z,z);
translate(320,340);
m[2].r=c[0][0];
m[2].b=c[1][0];

if(n<3) //second rect. frm rt.
digit(m[2],d[0]);
else
digit(m[2],d[1]);
//third rectangle frm rt.
if(n>1)
{ value=m[2].l;
m[2].l=640-m[2].r;
m[2].r=640-value;
if(flag==0)
digit(m[2],d[n-1]);
else
{ if(n==4)
digit(m[2],d[2]);
else
digit(m[2],-1);
}
}
//first rect. frm right
if(n>2)
{ init(m[1].l,m[1].t);
translate(-320,-340); //translate by x,y,and pt. 2 b translated
scale(z,z);
translate(320,340);
m[2].l=c[0][0];
m[2].t=c[1][0];
init(m[1].r,m[1].b);
translate(-320,-340); //translate by x,y,and pt. 2 b translated
scale(z,z);
translate(320,340);
m[2].r=c[0][0];
m[2].b=c[1][0];
digit(m[2],d[0]);
}

}

Tank Game

======