今天,小编在做完作业之后编了个小游戏,很短,只有100多行,因本人编写能力有限,运行时可能会出现bug,愿大家谅解,愿大家喜欢。2.0和2.1版本在下面。
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int Bossfy,Bossgj,Playerfy,Playergj,Bossxl,Playerxl,Bossts,Playerts,v,u;
void Player(int x)
{
int i=1;
if(v==3)
{
Playergj++,Playerfy++;
}
while(i<=x)
{
cout<<"你的攻击值:"<<Playergj<<endl;
cout<<"你的防御值:"<<Playerfy<<endl;
cout<<"你的血量:"<<Playerxl<<"/"<<Playerfy<<endl;
cout<<"1【攻击】(伤害为Player攻击值减去Boss防御值),2【回血】(回血量为1),3【提升】(免去两回合,攻击值和防御值同时提升1)"<<endl;
cin>>v;
switch(v)
{
case 1:if(Playergj>Bossfy) {Bossxl-=Playergj-Bossfy;Bossts=1;}
else {cout<<"攻击无效"<<endl;
Bossts=1;}
break;
case 2:if(Playerxl<Playerfy) {Playerxl++;Bossts=1;}
else {cout<<"血量已满,回血无效"<<endl;
Bossts=1;}
break;
case 3:Bossts=2;break;
default:cout<<"回合作废"<<endl;Bossts=1;break;
}
i++;
}
}
void Boss(int y)
{
int o=1;
if(u==1)
{
Bossgj++,Bossfy++;
u=0;
}
while(o<=y)
{
if(Bossxl>Bossfy)
{
Bossxl=Bossfy;
}
cout<<"Boss的攻击值:"<<Bossgj<<endl;
cout<<"Boss的防御值:"<<Bossfy<<endl;
cout<<"Boss的血量:"<<Bossxl<<"/"<<Bossfy<<endl;
o++;
if(Bossxl>=Bossfy/2)
{
if(v==3)
{
if(Bossgj>Playerfy) {cout<<"Boss选择了攻击你"<<endl;Playerxl-=Bossgj-Playerfy;Playerts=1;}
else {cout<<"Boss选择了提升"<<endl; Playerts=2;u=1;}
}
else
{
if(Bossgj>Playerfy) {cout<<"Boss选择了攻击你"<<endl;Playerxl-=Bossgj-Playerfy;Playerts=1;}
else if(Bossxl!=Bossfy) {cout<<"Boss选择了回血"<<endl;Bossxl++;Playerts=1;}
}
}
else
{
cout<<"Boss选择了回血"<<endl;
Bossxl++; Playerts=1;
}
}
}
int main()
{
Playerts=1;
cout<<"本游戏为了您的最佳体验请打开全屏,本作者编写水平有限,有不适请谅解"<<endl;
cout<<"请输入难度,1【简单】,2【中等】,3【困难】,4【极限】"<<endl;
int nd;
cin>>nd;
switch(nd)
{
case 1:Bossfy=Bossgj=Bossxl=9,Playerfy=Playergj=Playerxl=11;break;
case 2:Bossfy=Bossgj=Bossxl=12,Playerfy=Playergj=Playerxl=13;break;
case 3:Bossfy=Bossgj=Bossxl=Playerfy=Playergj=Playerxl=20;break;
case 4:Bossfy=Bossgj=Bossxl=32,Playerfy=Playergj=Playerxl=30;break;
default:cout<<"return 0"<<endl;return 0;
}
while(Bossxl!=0||Playerxl!=0)
{
Player(Playerts);
Boss(Bossts);
if(Bossxl<=0||Playerxl<=0)
{
break;
}
cout<<endl;
cout<<endl;
}
if(Bossxl<=0)
{
cout<<"你赢了!!