c对战游戏代码.docx

上传人:b****1 文档编号:3525885 上传时间:2023-05-06 格式:DOCX 页数:44 大小:21.09KB
下载 相关 举报
c对战游戏代码.docx_第1页
第1页 / 共44页
c对战游戏代码.docx_第2页
第2页 / 共44页
c对战游戏代码.docx_第3页
第3页 / 共44页
c对战游戏代码.docx_第4页
第4页 / 共44页
c对战游戏代码.docx_第5页
第5页 / 共44页
c对战游戏代码.docx_第6页
第6页 / 共44页
c对战游戏代码.docx_第7页
第7页 / 共44页
c对战游戏代码.docx_第8页
第8页 / 共44页
c对战游戏代码.docx_第9页
第9页 / 共44页
c对战游戏代码.docx_第10页
第10页 / 共44页
c对战游戏代码.docx_第11页
第11页 / 共44页
c对战游戏代码.docx_第12页
第12页 / 共44页
c对战游戏代码.docx_第13页
第13页 / 共44页
c对战游戏代码.docx_第14页
第14页 / 共44页
c对战游戏代码.docx_第15页
第15页 / 共44页
c对战游戏代码.docx_第16页
第16页 / 共44页
c对战游戏代码.docx_第17页
第17页 / 共44页
c对战游戏代码.docx_第18页
第18页 / 共44页
c对战游戏代码.docx_第19页
第19页 / 共44页
c对战游戏代码.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c对战游戏代码.docx

《c对战游戏代码.docx》由会员分享,可在线阅读,更多相关《c对战游戏代码.docx(44页珍藏版)》请在冰点文库上搜索。

c对战游戏代码.docx

c对战游戏代码

{

public:

voidsetColor(unsignedshortForeColor,unsignedshortBackGroundColor)

{

HANDLEhCon=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);

}

};

#endif

//***************************

//注意命名规则

//srand()函数

/*给文字作色

*/

//log类

//在最后做一个统计

//setw();

#define_CRT_SECURE_NO_DEPRECATE

#include"Game.h"

#include"Log.h"

#include

#include

usingnamespacestd;

Logdiary;

/**/

intmain()

{

GameG;

G.game();

cout<<"Preeanykeytoend!

";

_getch();

return0;

}

//Log.h日记类主要是记录整个战斗过程

#ifndefLog_h

classLog

{

private:

ofstreamfout;

public:

Log();

voidwrite(stringstr);

voidwrite(intNO);

voidwrite(doubleno);

~Log();

};

#endif

#include"Log.h"

Log:

:

Log()

{

fout.open("CombatRecord.txt");

}

Log:

:

~Log()

{

fout.close();

}

voidLog:

:

write(stringstr)

{

fout<

}

voidLog:

:

write(intNO)

{

fout<

}

voidLog:

:

write(doubleno)

{

fout<

}

#defineWizard_h

#include

#include"Soldier.h"

usingnamespacestd;

classWizard:

publicSoldier

{

protected:

intmaxMP;//最大魔法值

doubleMP;//魔法值

public:

voidrest();

voidwizard_attack(Soldier&enemy);

public:

//booltest();

voidalter();//修改巫师的标识符为2

Wizard(stringname);

Wizard();

~Wizard();

boolmakeDecision(Soldier&enemy);//返回是否使用了魔法

};

#endif

#define_CRT_SECURE_NO_DEPRECATE

#include"Wizard.h"

#include

#include

#include

usingnamespacestd;

#include"Log.h"

#include

externLogdiary;

Wizard:

:

Wizard(stringname)

:

Soldier(name)

{

maxMP=100;

MP=100;

alter();//在构造函数中自动修改标识符

}

voidWizard:

:

alter()

{

i=2;

}

Wizard:

:

Wizard()

{

{

}

voidWizard:

:

rest()

{

Soldier:

:

rest();

MP+=maxMP*0.3;

if(MP>maxMP)

MP=maxMP;

}

voidWizard:

:

wizard_attack(Soldier&enemy)

{

setColor(14,0);

cout<name;

diary.write(name);

setColor(10,0);

cout<<"["<level<<"级]";

diary.write("[");

diary.write(level);

diary.write("级]");

setColor(15,0);

cout<<"

";

diary.write("

");

setColor(12,0);

cout<HP;

diary.write(HP);

setColor(15,0);

//cout<<"/100SP:

";

//diary.write("/100SP:

");

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<SP;

diary.write(SP);

setColor(15,0);

//cout<<"/100>";

//diary.write("/100>");

cout<<"/";

cout<maxSP;

cout<<">";

//

//cout<<"魔法攻击";

diary.write("魔法攻击");

setColor(14,0);

cout<

diary.write(enemy.getName());

setColor(10,0);

cout<<"["<

diary.write("[");

diary.write(enemy.getName());

setColor(15,0);

cout<<"

";

diary.write("

");

setColor(12,0);

cout<

diary.write(enemy.getHP());

setColor(15,0);

cout<<"/100SP:

";

diary.write("/100SP:

");

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<

diary.write(enemy.getHP());

setColor(15,0);

cout<<"/";

cout<maxSP;

cout<<">\n";

diary.write("/");

diary.write(maxSP);

diary.write(">\n");

this->SP-=10;

this->MP-=25;

this->exp+=5;

enemy.setHP(enemy.getHP()-this->damage);

if(this->exp>=this->level*20)//判断巫师在攻击后是否进行升级

{

this->level++;

this->maxHP+=20;

this->maxSP+=20;

this->damage+=20;

cout<name<<"打死\n";

this->damage+=enemy.getDrugNum();

enemy.setHP(0);

enemy.setSP(0);

enemy.setLevel(0);

enemy.setmaxHP(0);

enemy.setmaxSP(0);

if(enemy.getI()==1)//在相应的计数器上加一

{

s_num++;

}

elseif(enemy.getI()==2)

{

w_num++;

}

elseif(enemy.getI()==3)

{

m_num++;

}

}

}

boolWizard:

:

makeDecision(Soldier&enemy)

{

inttemp;

if(HP

this->takingDrug();

elseif(SP

this->rest();

else

{

if(MP>25&&this->SP>10&&enemy.getI()>=2)

{

this->wizard_attack(enemy);

returntrue;

}

elseif(MP>25&&SP>10)

{

temp=rand()%2;

if(temp==0)

{

this->attack(enemy);

returnfalse;

}

else

}

else

{

this->attack(enemy);

returnfalse;

}

}

returnfalse;

}

//***************************

//Soldier.h

//注意命名规则

#ifndefSoldier_h

#defineSoldier_h

#include

#include"Log.h"

#include"Color.h"

usingnamespacestd;

classSoldier:

publicColor

{

protected:

intmaxHP,maxSP;//生命最大值和体力最大值

doubleHP;//生命

doubleSP;//体力

doubledamage;//攻击力

intexp;//经验

intlevel;//等级

stringname;//姓名

intdrugNum;//药瓶数量

inti;//标明对方的身份1表示Soldier,2表示Wizard,3表示Master

ints_num,w_num,m_num;//记录战士的杀敌情况

public:

//作测试用的

voidattack(Soldier&enemy);

voidrest();

voidtakingDrug();

public:

stringgetName(){returnname;}

doublegetSP(){returnSP;}

voidsetSP(doublesp){SP=sp;}

intgetI(){returni;}

voidsetLevel(intilevel){level=ilevel;}

voidsetmaxHP(intihp){maxHP=ihp;}

voidsetmaxSP(intisp){maxSP=isp;}

Soldier();

Soldier(stringiname);

~Soldier();

virtualboolmakeDecision(Soldier&enemy);

virtualvoidtotal();

};

#endif

//******************************

#define_CRT_SECURE_NO_DEPRECATE

#include"Soldier.h"

#include

#include

#include"Log.h"

usingnamespacestd;

#include

Soldier:

:

Soldier()

{

}

Soldier:

:

Soldier(stringiname)

{

maxHP=200;

maxSP=200;

name=iname;

HP=100;

SP=100;

damage=5;

exp=0;

level=1;

drugNum=5;

i=1;

s_num=0;

w_num=0;

m_num=0;

}

{

setColor(14,0);

cout<name;

diary.write(name);

setColor(10,0);

cout<<"["<level<<"级]";

diary.write("[");

diary.write(level);

diary.write("级]");

setColor(15,0);

cout<<"

";

diary.write("HP:

");

setColor(12,0);

cout<HP;

diary.write(HP);

setColor(15,0);

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<SP;

diary.write(SP);

setColor(15,0);

cout<<"/";

cout<maxSP;

cout<<">";

diary.write("/");

diary.write(maxSP);

diary.write(">");

setColor(11,0);

cout<<"攻击";

diary.write("攻击");

setColor(14,0);

cout<

diary.write(enemy.name);

setColor(10,0);

cout<<"["<

diary.write("[");

diary.write(enemy.level);

diary.write("]");

setColor(15,0);

cout<<"

";

setColor(15,0);

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<

diary.write(enemy.SP);

setColor(15,0);

cout<<"/";

cout<maxSP;

cout<<">\n";

diary.write("/");

diary.write(maxSP);

diary.write(">\n");

if(SP>=5)

{

this->SP-=5;

this->exp+=5;

enemy.HP-=this->damage;

if(this->exp>=(this->level*20+20))//看攻击者是否升级

{

setColor(12,0);

cout<name<<"升级!

\n";

diary.write(name);

diary.write("升级!

\n");

setColor(15,0);

this->level++;

this->maxHP+=20;

this->maxSP+=20;

this->damage+=20;

}

if(enemy.HP<=0)//判断敌人是否被打死了

{

cout<name<<"打死\n";

diary.write(enemy.name);

diary.write("被");

diary.write(name);

diary.write("打死\n");

this->drugNum+=enemy.drugNum;

enemy.setHP(0);

enemy.setSP(0);

enemy.setLevel(0);

enemy.setmaxHP(0);

enemy.setmaxSP(0);

if(enemy.getI()==1)//在相应的计数器上加一

s_num++;

elseif(enemy.getI()==2)

w_num++;

elseif(enemy.getI()==3)

m_num++;

}

}

else

{

cout<<"体力不足无法攻击!

\n";

}

}

voidSoldier:

:

rest()

{

setColor(14,0);

cout<name;

diary.write(name);

setColor(10,0);

cout<<"["<level<<"级]";

diary.write("[");

diary.write(level);

diary.write("级]");

setColor(15,0);

cout<<"

";

diary.write("HP:

");

setColor(12,0);

cout<HP;

diary.write(HP);

setColor(15,0);

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<SP;

diary.write(SP);

diary.write("/");

diary.write(maxSP);

diary.write(">");

setColor(15,0);

cout<<"休息";

diary.write("休息");

HP+=maxHP*0.5;

if(HP>maxHP)

{

HP=maxHP;

}

SP+=maxSP*0.5;

if(SP>maxSP)

{

SP=maxHP;

}

setColor(10,0);

cout<<"["<level<<"级]";

diary.write("[");

diary.write(level);

diary.write("级]");

setColor(15,0);

cout<<"

";

diary.write("HP:

");

setColor(12,0);

cout<HP;

diary.write(HP);

setColor(15,0);

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<SP;

diary.write(SP);

setColor(15,0);

cout<<"/";

cout<maxSP;

cout<<">\n";

diary.write("/");

diary.write(maxSP);

diary.write(">\n");

{

if(this->drugNum==0)

{

setColor(12,0);

cout<name<<"你已经没有药了\n";

setColor(15,0);

}

else

{

setColor(14,0);

cout<name;

cout<<"["<level<<"级]";

diary.write("[");

diary.write(level);

diary.write("级]");

setColor(15,0);

cout<<"

";

diary.write("HP:

");

setColor(12,0);

cout<HP;

diary.write(HP);

setColor(15,0);

//cout<<"/100SP:

";

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<SP;

diary.write(SP);

setColor(15,0);

//cout<<"/100>";

cout<<"/";

cout<maxSP;

cout<<">";

diary.write("/");

diary.write(maxSP);

diary.write(">");

setColor(15,0);

cout<<"吃药";

diary.write("吃药");

this->drugNum--;

HP+=maxHP*0.5;

diary.write("[");

diary.write(level);

diary.write("级]");

setColor(15,0);

cout<<"

";

diary.write("HP:

");

setColor(12,0);

cout<HP;

diary.write(HP);

setColor(15,0);

cout<<"/";

cout<maxHP;

cout<<"SP:

";

diary.write("/");

diary.write(maxHP);

diary.write("SP:

");

setColor(12,0);

cout<SP;

diary.write(SP);

setColor(15,0);

cout<<"/";

cout<maxSP;

cout<<">\n";

diary.write("/");

diary.write(maxSP);

diary.write(">\n");

setColor(15,0);

}

}

Soldier:

:

~Soldier()

{

}

voidSoldier:

:

total()

{

setColor(14,0);

cout<name<<"";

diary.write(name+"");

setColor(10,0);

cout<<"["<level<<"级]";

diary.write("[");

diary.write(level);

diary.write("级]");

cout<HP;

diary.write(HP);

setColor(15,0);

cout<<"/";

cout<ma

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2