MD5大作战c++程序.docx

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

MD5大作战c++程序.docx

《MD5大作战c++程序.docx》由会员分享,可在线阅读,更多相关《MD5大作战c++程序.docx(22页珍藏版)》请在冰点文库上搜索。

MD5大作战c++程序.docx

MD5大作战c++程序

//程序说明:

函数主题是表现两位英雄的大战,程序按照人的思维来编hero类,每位英雄都有几个参数,打前用decide函数判断形势。

决定招式。

得到一个决策值当做ShoukongFU函数的参数,从而发功,

//其中参数的产生用的是字符计算得来,再除以质数得到,

#include

#include

#include

#include

#include

usingnamespacestd;

//------------------------产生指定区间的随机数---------------------

inlineintprob(inta,intb)//注意b的值大于1

{

intp;

p=a+rand()%(b-a);

returnp;

}

//----------------------打字机效果函数----------------------------

voidtype(char*a)

{

for(inti=0;a[i]!

='\0';i++)

{

cout<

}

}

//------------------------max返回数组array中最大值得下标-------------------------------------

intmax_array(double*array,intn)

{

intk=0;

for(inti=0;i

{

if(array[i]>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&A);//出剑

voidXiXinDaFa(hero&A);//吸星大法

voidquan(hero&A);//出拳

voidjiao(hero&A);//出脚

voidbu(hero&A);//补充元气

voiddajue(hero&A);//致命一击

voidfairy(hero&A);//仙女下凡

voiddefine(hero&A);//抵挡

voidliangong(hero&A);//逃跑,去练功

voidvs(doublea,doubleb);//判断胜负的函数

~hero(){cout<<"来世我们再战……"<

};

//-----------------------得到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]!

='\0';i++)

{

b=int(n[i]);

Nature+=b;

}

nature=abs(Nature/year/month*day);

}

//-------------------------构造函数---------------------------------

hero:

:

hero()

{

type("……闭门苦修数十载……");cout<

Sleep(100);

type("……这一战我等了十年,快出来吧……");cout<

Sleep(100);

}

//--------------------------显示英雄的属性--------------------------

voidhero:

:

showme()

{

refresh(yq2);

cout<<"英雄大名"<

cout<<"元气"<

cout<<"攻击力"<

cout<<"防御力"<

cout<<"杀气"<

Sleep(600);

}

//---------------------------刷新英雄的各参数-----------------------

voidhero:

:

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&&t>20)

{

def=d;

}

doublesha=yq*0.25+fight*0.25+def*0.14;

if(sha<300&&sha>70)//控制杀气范围小于300大于70

{

shaqi=sha;

}

}

//------------------------设定hero的名字----------------------------

voidhero:

:

GetName()

{

cout<

}

//---------------------对hero的各参数初始化--------------------------

voidhero:

:

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;//只是一个即时用的

nature=nature/13;

def=double(nature%50)+150.0+t/3.5;

nature=nature/13;

shaqi=yq*0.25+fight+def*0.04+(t*400+50)*0.15;//!

!

!

!

!

!

!

!

!

!

!

!

!

杀气值,根据自己的一些属性而加权得到!

!

!

!

!

!

!

!

!

!

!

}

//----------------------------生命力函数------------------------------------

voidhero:

:

life()

{

if(yq<0)

{

cout<

}

if(yq<100&&yq>0)

{

cout<

"<

Sleep(1000);

}

if(fight<50.0)

{

cout<

Sleep(1000);

}

if(def<50.0)

{

cout<

Sleep(1000);

}

}

//------------------自己根据与A的综合对比,决定武功或防御或退隐练功--------------以自己为参照来看----------------------------------

inthero:

:

decide(hero&A)

{

refresh(yq2);

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()被攻击后防御多出的元气

}

if(yq<180&&fight<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)自己逃跑经过练功后多出的元气,自己有惩罚

}

if(sha<16&&sha>13||sha==23)//决定自己用何武功,伤元气控制在50~100左右,概率低则需要让值小

{

yuanqi[3]=yq-A.yq+38;//quan(A)功夫

}

if(sha<18&&sha>15)

{

yuanqi[4]=yq-A.yq+40;//jiao(A)

}

if(sha<=26&&sha>=24||sha==19)

{

yuanqi[5]=yq-A.yq+36;//jian(A)

}

if(yq<200&&(sha==27||sha==13||sha==30))

{

yuanqi[6]=yq-A.yq+60;//fairy(A),控制出现的概率

}

if(yq<80&&fight<220)

{

yuanqi[7]=yq-A.yq+50;//吸星大法的自己增,对方减,概率很低,一直都要参与与其他情况额对比

}

//判断

returnmax_array(yuanqi,8);

}

//---------------根据决策判断使用的武功,或防守,或逃跑……-----------------------

voidhero:

:

ShowKongFU(intdecide,hero&A)

{

switch(decide)

{

case0:

dajue(A);break;

case1:

define(A);break;

case2:

liangong(A);break;

case3:

quan(A);break;

case4:

jiao(A);break;

case5:

jian(A);break;

case6:

fairy(A);break;

case7:

XiXinDaFa(A);break;

}

this->life();

A.life();

refresh(yq2);

A.refresh(A.yq2);

bu(A);

cout<

}

//************************对各功力的设定*****************************

//--------------------------出剑--------------------------------------

voidhero:

:

jian(hero&A)

{

doublep;

p=prob(35,45)+prob(1,3)/7;

A.yq2-=p;

cout<

Sleep(1000);

this->showme();

A.showme();

cout<

}

//----------------------------出拳-------------------------------------

voidhero:

:

quan(hero&A)

{

doublep;

p=prob(30,38)+prob(1,3)/11;

A.yq2-=p;

cout<

Sleep(1000);

this->showme();

A.showme();

cout<

}

//-------------------------出脚-------------------------------------

voidhero:

:

jiao(hero&A)

{

doublep;

p=prob(40,50)+prob(1,3)/13;

A.yq2-=p;

cout<

cout<<"向"<

type("发动天残神功,顿时地动山摇,一条裂缝向");

cout<

cout<<"伤了"<

Sleep(1000);

this->showme();

A.showme();

cout<

}

//---------------------------防御-------------------------------------

voidhero:

:

define(hero&A)

{

doubleq;

if(A.yq-yq>100)

{

cout<

q=0.25*A.fight-0.15*def+10;

def=0.65*def;

yq2=yq-q;

cout<

cout<

Sleep(600);

cout<

逼过一击!

欢喜异常!

");

cout<

Sleep(600);

cout<

Sleep(600);

cout<<"但"<

Sleep(1000);

cout<

}

else

{

q=0.25*A.fight-0.15*def;

def=0.65*def;

yq2=yq-q;

cout<

Sleep(600);

cout<

逼过一击!

欢喜异常!

"<

Sleep(600);

cout<

Sleep(600);

cout<<"但"<

Sleep(1000);

cout<

}

this->showme();

A.showme();

cout<

Sleep(1000);

}

//------------------------吸星大法-------------------------------------

voidhero:

:

XiXinDaFa(hero&A)

{

cout<

A.yq2=A.yq2-shaqi*0.05-150;

yq2=yq2+shaqi*0.155+130;

cout<

Sleep(1000);

cout<

Sleep(1000);

cout<

this->showme();

A.showme();

cout<

}

//-----------------------------仙女下凡----------------------------

voidhero:

:

fairy(hero&A)

{

doubleq;

q=prob(50,60);

cout<

type("遥望华山,南峰之巅,一道灵光划过……");

Sleep(600);

cout<

cout<

Sleep(600);

type("果不其然,华山之神受惊扰,遂下凡一视……");

Sleep(600);

A.yq2=A.yq2-q;

yq2=yq2+q/2;

cout<<"突然,由于分神,"<

Sleep(600);

cout<

Sleep(1000);

cout<

this->showme();

A.showme();

cout<

}

//---------------------------补血-----------------------------------

voidhero:

:

bu(hero&A)//shaqi270~350

{

if(yq<75)

{

doublep=200+prob(0,50);

yq=yq+p;

cout<

"<

}

elseif(yq<150)

{

doublep=50+prob(0,25);

yq=yq+p;

cout<

"<

}

elseif(yq<250)

{

doublep=80+prob(0,25);

yq=yq+p;

cout<

"<

cout<

}

cout<

this->showme();

A.showme();

cout<

}

//--------------------------致命一击函数-----------------------------------

voidhero:

:

dajue(hero&A)

{

if(yq>380&&fight>230)

{

cout<

Sleep(1000);

A.yq2=A.yq2-fight*0.25-shaqi*0.35;

yq2=yq-0.12*yq;

cout<

Sleep(1000);

cout<

}

else

{

A.yq2=A.yq2-fight*0.16-shaqi*0.23;

cout<

Sleep(600);

cout<

}

cout<

this->showme();

A.showme();

cout<

}

//-------------------------自己逃跑练功---------------------------------

voidhero:

:

liangong(hero&A)

{

cout<

cout<

Sleep(1000);

cout<

!

!

!

!

!

!

!

!

!

!

"<<"三月之后,华山之巅,我们之间必有一死……"<

Sleep(3000);

cout<

type("

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

当前位置:首页 > 解决方案 > 学习计划

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

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