C大作业坦克大战
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#i n c l u d e #include
#include
#include
#include
usingnamespacestd;
HANDLEMutex=CreateMutex(NULL,FALSE,NULL);//互斥对象
intGameOver=0;
intlevel=0;
intmap[23][23];
//坦克种类,Normal为玩家坦克
#defineNormal0
#defineRed1
#defineBlue2
#defineGreen3
//方向的宏定义
#defineUp0
#defineDown1
#defineLeft2
#defineRight3
//地图标记的宏定义
#defineEmpty0
#definePlayer1
#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;//坦克的种类(详见宏定义)
intID;//坦克在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;