c++rpg黑框游戏_c++实现简单RPG对战游戏的代码

本文展示了如何使用C++编程实现一个简单的RPG对战游戏,包括角色Archer和Mage的攻击、必杀技以及等级提升的逻辑。通过随机数生成模拟战斗过程,根据角色属性进行伤害计算和经验获取。
摘要由CSDN通过智能技术生成

NumHeal = i * 5;

bag.NumMgWorter = i * 5;

}

bool attack(player &p);

bool TSattack(player &p);

void IsLvUp();

};

bool Archer::attack(player &p)

{

int Hphit;

int EXPhit;

cout &lt&lt name &lt&lt "攻击" &lt&lt endl;

srand(time(NULL));

int j = rand()%100;

if (speed &gt= p.speed && j &lt= 25)

{

cout &lt&lt name &lt&lt "必杀一击" &lt&lt endl;

Hphit = p.Hp;

p.Hp = p.Hp - (Ap - p.Dp) * 2 * (LV - 1);

cout &lt&lt "敌人损失Hp " &lt&lt Hphit - p.Hp &lt&lt endl;

EXPhit = EXP;

EXP = (Ap - Dp) * 2 * (LV - 1);

cout &lt&lt name &lt&lt "获得EXP " &lt&lt EXPhit - EXP &lt&lt endl;

p.IsDead();

return true;

}

else if(speed &lt= p.speed && j &gt25 && j &lt=50)

{

cout &lt&lt "敌人躲避" &lt&lt endl;

return true;

}

else if(j &lt 100 && j &gt 50)

{

cout &lt&lt p.name &lt&lt "普通攻击 " &lt&lt endl;

Hphit = p.Hp;

p.Hp = p.Hp - (Ap - p.Dp) * (LV - 1);

cout &lt&lt "敌人损失Hp " &lt&lt Hphit - p.Hp &lt&lt endl;

EXPhit = EXP;

EXP = (Ap - Dp) * ( LV - 1);

cout &lt&lt p.name &lt&lt "获得EXP " &lt&lt EXPhit - EXP &lt&lt endl;

p.IsDead();

return true;

}

else

return false;

}

bool Archer::TSattack(player &p)

{

srand( time(NULL) );

int j = rand()%100;

int Hphit;

int EXPhit;

if ( Mp &gt= 50 )

{

cout &lt&lt p.name &lt&lt "的绝招..." &lt&lt endl;

Mp -= 40;

if (j &lt= 49 || j &gt= 60)

{

cout &lt&lt "命中目标 " &lt&lt endl;

Hphit = p.Hp;

p.Hp = p.Hp - (Ap - p.Dp) * 3 * ( LV -1);

cout &lt&lt "敌人损失Hp " &lt&lt Hphit - p.Hp &lt&lt endl;

EXPhit = EXP;

EXP = (Ap - p.Dp) * 2 * (LV -1 );

cout &lt&lt p.name &lt&lt "获得经验 " &lt&lt EXPhit - EXP &lt&lt endl;

p.IsDead();

return true;

}

else

{

cout &lt&lt "目标移动" &lt&lt p.name &lt&lt "攻击无效" &lt&lt endl;

return true;

}

}

else

{

cout &lt&lt "魔法不足! " &lt&lt endl;

return false;

}

}

void Archer::IsLvUp()

{

if (EXP &gt= LV * LV * 75)

{

EXP -= LV * LV * 75;

++LV;

HpMax = 150 + 8 * (LV -1);

MpMax = 80 + 3 * (LV -1);

Ap += 3;

Dp += 3;

speed += 4;

cout &lt&lt name &lt&lt "升级了~,等级为" &lt&lt LV &lt&lt endl;

}

}

class Mage:public player

{

public:

Mage(int i, char *chname)

{

role = mg;

int j;

for (j=0; j&lt10; j++)

{

name[j] = chname[j];

}

Hp = 150 + 8 * (i - 1);

HpMax = 150 + 8 * (i - 1);

Mp = 80 + 3 * (i - 1);

MpMax = 80 + 3 * (i - 1);

Ap = 25 + 4 * (i - 1);

Dp = 25 + 4 * (i - 1);

speed = 25 + 2 * (i - 1);

LV = i;

death = 0;

EXP = LV * LV * 75;

bag.NumHeal = i * 5;

bag.NumMgWorter = i * 5;

}

bool attack(player &p);

bool TSattack(player &p);

void IsLvUp();

};

bool Mage::attack(player &p)

{

int Hphit;

int EXPhit;

cout &lt&lt name &lt&lt "攻击" &lt&lt endl;

srand(time(NULL));

int j = rand()%100;

if (speed &gt= p.speed && j &lt= 25)

{

cout &lt&lt "必杀" &lt&lt endl;

Hphit = p.Hp;

p.Hp = p.Hp - (Ap - p.Dp) * 2 * (LV - 1);

cout &lt&lt "敌人损失Hp " &lt&lt Hphit - p.Hp &lt&lt endl;

EXPhit = EXP;

EXP = (Ap - Dp) * 2 * (LV - 1);

cout &lt&lt "获得EXP " &lt&lt EXPhit - EXP &lt&lt endl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值