# i ncl u d e < i ostream> #in clude
HANDLEMutex二CreateMutex(NULL,FALSE,NULL);/互斥对象 in tGameOver=0; in tlevel=0; in tmap[23][23];
//坦克种类,Normal为玩家坦克 #defi neNormalO #defi neRed1 #defi neBlue2 #defi neGree n3 //方向的宏定义 #defi neUp0 #defi neDow n1 #defi neLeft2 #defi neRight3 //地图标记的宏定义
#defi neEmpty0 #defi nePlayer1
#definePlayerBullet2 #defineEnemyBullet3
#defineEnemy4 intKill; intKillRed; intKillGreen; intEnemyExist;
voidSetPos(inti,intj)// 设定光标位置
{
COORDpos={i,j};
HANDLEOut=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(Out,pos);
}
voidHideCurSor(void)// 隐藏光标
{
CONSOLE_CURSOR_INFOinfo={1,0};
HANDLEOut=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorInfo(Out,&info);
}
intsharp[4][12]=
{
{0,1,1,0,1,1,1,2,2,0,2,2}, {0,0,0,2,1,0,1,1,1,2,2,1}, {0,1,0,2,1,0,1,1,2,1,2,2},
{0,0,0,1,1,1,1,2,2,0,2,1}, };// 此数组用来保存坦克各个方向的形状信息
DWORDWINAPIBulletfly(LPVOIDlpParameter);// 子弹函数申明 voidUpdata();// 更新界面信息函数申明 classTank// 坦克类
{
private:
intDirection;// 方向 inthotpoint[2];// 活动点 intSpeed;// 速度 intFirePower;// 火力 public:
Tank(intdir,inthot1,inthot2,inttyp,intspe,intfirepow)//
{
Direction=dir; hotpoint[0]=hot1; hotpoint[1]=hot2; Type=typ; Speed=spe; FirePower=firepow;
}
intType;// 坦克的种类(详见宏定义)
intlD;〃 坦克在MAP中的标记(详见宏定义) intFireEnable;// 是否可以开火 intLife;// 生命值
构造函数
voidRunning();// 运行函数
intJudge(intx,inty,intID);// 判断是否可以绘制坦克 voidDrawTank();// 重绘坦克 voidRedraw();// 擦除坦克 intGetSpeed()// 获取速度
{
returnSpeed;
}
intGetFire()// 获取火力
{
returnFirePower;
}
intGetDirection()// 获取方向
{
returnDirection;
}
intGetHotX()// 获取活动点坐标
{
returnhotpoint[0];
}
intGetHotY()
returnhotpoint[1];
}
voidIncreaseFire()// 火力 +
{
FirePower++;
}
voidIncreaseSpeed()// 速度 +
{
Speed++;
}
voidChangeDirection(intnewD)// 改变方向
{
Direction=newD;
}
voidChangePos(intx,inty)// 改变活动点
{
hotpoint[0]=x; hotpoint[1]=y;
}
};
Tankplayer(Right,0,0,Normal,1,1);// 玩家 Tankenemy(Left,20,0,Red,1,1);// 敌人 voidTank::DrawTank()// 绘制坦克
inti;
{
C++大作业坦克大战



