C大作业坦克大战

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include #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;

intnx,ny;

if(Type==Red)

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED);

elseif(Type==Blue)

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_BLUE);

elseif(Type==Green)

相关文档
最新文档