c对战游戏代码Word文档格式.docx
- 文档编号:6079471
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:44
- 大小:21.09KB
c对战游戏代码Word文档格式.docx
《c对战游戏代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《c对战游戏代码Word文档格式.docx(44页珍藏版)》请在冰点文库上搜索。
G.game();
cout<
<
"
Preeanykeytoend!
;
_getch();
return0;
//Log.h日记类主要是记录整个战斗过程
#ifndefLog_h
classLog
private:
ofstreamfout;
Log();
voidwrite(stringstr);
voidwrite(intNO);
voidwrite(doubleno);
~Log();
Log:
:
Log()
fout.open("
CombatRecord.txt"
);
~Log()
fout.close();
voidLog:
write(stringstr)
fout<
str.c_str();
write(intNO)
NO;
write(doubleno)
no;
#defineWizard_h
string>
Soldier.h"
classWizard:
publicSoldier
protected:
intmaxMP;
//最大魔法值
doubleMP;
//魔法值
voidrest();
voidwizard_attack(Soldier&
enemy);
//booltest();
voidalter();
//修改巫师的标识符为2
Wizard(stringname);
Wizard();
~Wizard();
boolmakeDecision(Soldier&
//返回是否使用了魔法
Wizard.h"
stdlib.h>
time.h>
externLogdiary;
Wizard:
Wizard(stringname)
Soldier(name)
maxMP=100;
MP=100;
alter();
//在构造函数中自动修改标识符
voidWizard:
alter()
i=2;
Wizard()
rest()
Soldier:
rest();
MP+=maxMP*0.3;
if(MP>
maxMP)
MP=maxMP;
wizard_attack(Soldier&
enemy)
setColor(14,0);
this->
name;
diary.write(name);
setColor(10,0);
["
level<
级]"
diary.write("
diary.write(level);
setColor(15,0);
HP:
setColor(12,0);
HP;
diary.write(HP);
//cout<
/100SP:
//diary.write("
/"
maxHP;
SP:
diary.write(maxHP);
SP;
diary.write(SP);
/100>
"
maxSP;
>
//
魔法攻击"
enemy.getName();
diary.write(enemy.getName());
enemy.getLevel()<
enemy.getHP();
diary.write(enemy.getHP());
enemy.getSP();
\n"
diary.write(maxSP);
SP-=10;
MP-=25;
exp+=5;
enemy.setHP(enemy.getHP()-this->
damage);
if(this->
exp>
=this->
level*20)//判断巫师在攻击后是否进行升级
level++;
maxHP+=20;
maxSP+=20;
damage+=20;
enemy.getName()<
被"
name<
打死\n"
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&
inttemp;
if(HP<
maxHP*0.3)
takingDrug();
elseif(SP<
maxSP*0.5)
else
25&
&
SP>
10&
enemy.getI()>
=2)
wizard_attack(enemy);
returntrue;
elseif(MP>
10)
temp=rand()%2;
if(temp==0)
attack(enemy);
returnfalse;
//Soldier.h
#ifndefSoldier_h
#defineSoldier_h
Color.h"
classSoldier:
publicColor
intmaxHP,maxSP;
//生命最大值和体力最大值
doubleHP;
//生命
doubleSP;
//体力
doubledamage;
//攻击力
intexp;
//经验
intlevel;
//等级
stringname;
//姓名
intdrugNum;
//药瓶数量
inti;
//标明对方的身份1表示Soldier,2表示Wizard,3表示Master
ints_num,w_num,m_num;
//记录战士的杀敌情况
//作测试用的
voidattack(Soldier&
voidtakingDrug();
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&
virtualvoidtotal();
//******************************
windows.h>
iomanip>
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(11,0);
攻击"
enemy.name;
diary.write(enemy.name);
enemy.level<
diary.write(enemy.level);
]"
enemy.SP;
diary.write(enemy.SP);
if(SP>
=5)
SP-=5;
enemy.HP-=this->
damage;
=(this->
level*20+20))//看攻击者是否升级
升级!
if(enemy.HP<
=0)//判断敌人是否被打死了
enemy.name<
drugNum+=enemy.drugNum;
体力不足无法攻击!
voidSoldier:
休息"
HP+=maxHP*0.5;
if(HP>
maxHP)
HP=maxHP;
SP+=maxSP*0.5;
maxSP)
SP=maxHP;
drugNum==0)
你已经没有药了\n"
吃药"
drugNum--;
~Soldier()
total()
diary.write(name+"
setw(3)<
ma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游戏 代码