MD5大作战c++程序Word文档格式.docx
《MD5大作战c++程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《MD5大作战c++程序Word文档格式.docx(22页珍藏版)》请在冰点文库上搜索。
![MD5大作战c++程序Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/e6a7fb46-6e2a-4b5c-8984-678ff3e5f709/e6a7fb46-6e2a-4b5c-8984-678ff3e5f7091.gif)
array[k])
k=i;
returnk;
//------------------------定义hero类---------------------------------
classhero
private:
charname[100];
//英雄大名
intnature;
//天生值,便于对其他的属性赋值
intyear,month,day;
//生日
doubleyq;
//元气值1,,,他的值在作战后在刷新函数中更新
doubleyq2;
//元气值2,用来储存当前作战后的元气值,所有的功夫中军使用它,然后刷新后,在输出显示
doublefight;
//攻击力值
doubledef;
//防御力
doubleshaqi;
//
public:
hero();
voidGetName();
doubleGetYq(){returnyq2;
voidNATURE(char*n,intn1,inty,intr);
//天生的潜力值
voidsetme();
//对每个参数设定默认的值(每个人对应一个确定的值)
voidshowme();
//显示信息
voidrefresh(doubley);
//刷新英雄的个参数
voidShowKongFU(intdecide,hero&
A);
//显示功夫
voidlife();
//显示英雄的生命状况
intdecide(hero&
A);
//根据与A的综合对比,决定用什么招式
voidjian(hero&
//出剑
voidXiXinDaFa(hero&
//吸星大法
voidquan(hero&
//出拳
voidjiao(hero&
//出脚
voidbu(hero&
//补充元气
voiddajue(hero&
//致命一击
voidfairy(hero&
//仙女下凡
voiddefine(hero&
//抵挡
voidliangong(hero&
//逃跑,去练功
voidvs(doublea,doubleb);
//判断胜负的函数
~hero(){cout<
"
来世我们再战……"
endl;
}
};
//-----------------------得到hero天生对应的值------------------------
voidhero:
:
NATURE(char*n,intm,inty,intr)
intNature;
strcpy(name,n);
year=y;
month=m;
day=r;
inti,b;
for(i=0;
n[i]!
b=int(n[i]);
Nature+=b;
nature=abs(Nature/year/month*day);
//-------------------------构造函数---------------------------------
hero:
hero()
type("
……闭门苦修数十载……"
);
cout<
Sleep(100);
……这一战我等了十年,快出来吧……"
//--------------------------显示英雄的属性--------------------------
showme()
refresh(yq2);
cout<
英雄大名"
name<
'
\t'
元气"
yq<
攻击力"
fight<
防御力"
def<
杀气"
shaqi<
Sleep(600);
//---------------------------刷新英雄的各参数-----------------------
refresh(doubleyq2)
doubles=yq-yq2;
if(yq2<
500)//控制元气范围500,允许小于零,判断胜负
yq=yq2;
doublet=fight+s/10;
if(t<
350&
&
t>
20)//控制攻击力范围20~350
fight=t;
doubled=def+s/7;
//控制防御力范围20~300
if(d<
300&
20)
def=d;
doublesha=yq*0.25+fight*0.25+def*0.14;
if(sha<
sha>
70)//控制杀气范围小于300大于70
shaqi=sha;
//------------------------设定hero的名字----------------------------
GetName()
name;
//---------------------对hero的各参数初始化--------------------------
setme()
doublet;
t=prob(1,10)/10+0.1;
//产生0.1~0.2的随机数
yq=double(nature%300)+250.0+t/3.0;
//保证大于250
yq2=yq;
//初值暂时等于yq
nature=nature/13;
fight=double(nature%50)+150.0+t/5.0;
//只是一个即时用的
def=double(nature%50)+150.0+t/3.5;
shaqi=yq*0.25+fight+def*0.04+(t*400+50)*0.15;
//!
!
杀气值,根据自己的一些属性而加权得到!
//----------------------------生命力函数------------------------------------
life()
if(yq<
0)
元气殆尽,垂死挣扎……"
100&
yq>
元气大伤,危险!
!
Sleep(1000);
if(fight<
50.0)
的攻击力较低"
if(def<
的防御力较低,要小心了"
//------------------自己根据与A的综合对比,决定武功或防御或退隐练功--------------以自己为参照来看----------------------------------
inthero:
decide(hero&
A)
{
A.refresh(A.yq2);
doublea=prob(4,5)/10;
doubled=prob(3,4)/10;
doublec=prob(1,2)/10;
doubleb=1.0-a;
doubleyuanqi[10];
doublesha=prob(10,30);
if(yq>
175&
(sha==21||sha==22||sha<
12))
yuanqi[0]=yq-A.yq+fight*a-A.def*d;
//致命一击攻击A后不防御也不发功后多出的元气
if(def>
150&
fight<
150)
yuanqi[1]=-yq+A.yq+A.fight*a*0.10-def*b*0.22;
//define()被攻击后防御多出的元气
180&
200&
(sha=12||sha==29||sha==20))
yuanqi[2]=yq+0.25*fight+0.35*shaqi-A.yq-A.fight*0.55-A.shaqi*0.55+20;
//liangong(A)自己逃跑经过练功后多出的元气,自己有惩罚
16&
13||sha==23)//决定自己用何武功,伤元气控制在50~100左右,概率低则需要让值小
yuanqi[3]=yq-A.yq+38;
//quan(A)功夫
18&
15)
yuanqi[4]=yq-A.yq+40;
//jiao(A)
=26&
=24||sha==19)
yuanqi[5]=yq-A.yq+36;
//jian(A)
(sha==27||sha==13||sha==30))
yuanqi[6]=yq-A.yq+60;
//fairy(A),控制出现的概率
80&
220)
yuanqi[7]=yq-A.yq+50;
//吸星大法的自己增,对方减,概率很低,一直都要参与与其他情况额对比
//判断
returnmax_array(yuanqi,8);
//---------------根据决策判断使用的武功,或防守,或逃跑……-----------------------
ShowKongFU(intdecide,hero&
A)
switch(decide)
case0:
dajue(A);
break;
case1:
define(A);
case2:
liangong(A);
case3:
quan(A);
break;
case4:
jiao(A);
case5:
jian(A);
case6:
fairy(A);
case7:
XiXinDaFa(A);
this->
life();
A.life();
bu(A);
//************************对各功力的设定*****************************
//--------------------------出剑--------------------------------------
jian(hero&
doublep;
p=prob(35,45)+prob(1,3)/7;
A.yq2-=p;
掏出自己的倚天剑,向"
A.name<
刺去,伤了"
p<
的元气……"
Sleep(1000);
showme();
A.showme();
//----------------------------出拳-------------------------------------
quan(hero&
p=prob(30,38)+prob(1,3)/11;
给了"
一拳,打的"
A.name<
眼冒金星,伤了他"
//-------------------------出脚-------------------------------------
jiao(hero&
p=prob(40,50)+prob(1,3)/13;
运了运气,伸出右腿……"
Sleep(100);
向"
A.name;
发动天残神功,顿时地动山摇,一条裂缝向"
A.name;
type("
飞去……"
伤了"
//---------------------------防御-------------------------------------
define(hero&
doubleq;
if(A.yq-yq>
100)
q=0.25*A.fight-0.15*def+10;
def=0.65*def;
yq2=yq-q;
cout<
A.name<
name;
发动疯狂一击,瞬间风起云涌,乾坤颠倒……"
掏出随身带的武功秘籍,查阅得知,这便是失传已久的乾坤大挪移……于是他迅速闪开!
逼过一击!
欢喜异常!
很恼火,发动连击……"
再次闪过……"
但"
受了点轻伤了,损失了"
q<
的元气"
else
q=0.25*A.fight-0.15*def;
拔出祖传屠龙刀,向"
砍去……"
侧身一闪!
很恼火,发动连击,在砍一刀……"
被屠龙刀杀气所伤,损失了"
点元气"
//------------------------吸星大法-------------------------------------
XiXinDaFa(hero&
运了一个大气,向"
发功吸星大法"
A.yq2=A.yq2-shaqi*0.05-150;
yq2=yq2+shaqi*0.155+130;
损伤了"
shaqi*0.05+150<
顿时精神涣散"
吸了"
shaqi*0.155+130<
元气后功力大增……"
//-----------------------------仙女下凡----------------------------
fairy(hero&
q=prob(50,60);
遥望华山,南峰之巅,一道灵光划过……"
心生疑惑,自问着难道是仙女下凡"
果不其然,华山之神受惊扰,遂下凡一视……"
A.yq2=A.yq2-q;
yq2=yq2+q/2;
突然,由于分神,"
被"
刺伤,大伤"
点元气……"
乘机补充了一点仙女的灵气,元气恢复不少..."
//---------------------------补血-----------------------------------
bu(hero&
A)//shaqi270~350
75)
{
doublep=200+prob(0,50);
yq=yq+p;
捡到一粒仙丹"
元气大增,瞬间长了"
的元气!
elseif(yq<
doublep=50+prob(0,25);
做了一个深呼吸"
顿时神清气爽,长了"
250)
doublep=80+prob(0,25);
补充了一点干粮"
体力恢复不少,长了"
没有吃的,很是恼火……"
//--------------------------致命一击函数-----------------------------------
dajue(hero&
380&
fight>
230)
使出全身功力向"
发动致命一击"
A.yq2=A.yq2-fight*0.25-shaqi*0.35;
yq2=yq-0.12*yq;
损失了"
fight*0.25+shaqi*0.35<
A.yq2=A.yq2-fight*0.16-shaqi*0.23;
Sleep(600);
由于一时手软,只用了三成功力"
fight*0.16+shaqi*0.23<
//-------------------------自己逃跑练功---------------------------------
liangong(hero&
觉得偶感伤寒,向"
提出申请,休战三月"
爽快答应"
三月之后,华山之巅,我们之间必有一死……"
Sleep(3000);
endl<