双人自动对战小游戏
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
string name1,name2;
int hp1,hp2,gj1,gj2,fy1,fy2;
string jin[30]={"会心一击","回复术","闪电拳","诅咒","治愈魔法","火球术","雷击术","重击","生命之轮","减速术","撞击","背刺","铁壁","吸血攻击","净化","伤害反弹盾","瘟疫","攻击","攻击","攻击","攻击","攻击","攻击","攻击","暴击","投毒","治疗药剂","攻击","攻击","10连击"};
double gj[30]={6,3,5.5,5,5,4,4.5,3,0,1,3.7,8,0,2,2,0,7,1,1,1,1,1,3.5,1,2,1,1,0.55};
int main()
{
cout <<"P1的名字:";
cin >> name1;
cout <<"P2的名字:";
cin >> name2;
while(name1==name2)//更新点在此!!!
{
cout<<"重名,请重新输入P2的名字!\n";
cout <<"P2的名字:";
cin >> name2;
}
system("cls");
cout << name1 <<" VS "<< name2 << endl;
//
int num1=0,num2=0;
for(int i=0;i<=name1.size();i++)
num1=num1+int(name1[i]);
for(int i=0;i<=name2.size();i++)
num2=num2+int(name2[i]);
num1=abs(num1);
num2=abs(num2);
//
Sleep(200);
cout<<name1<<" "<<"HP";
hp1=150+num1%450;
cout<<hp1<<" "<<"攻"<<" ";
if(num1%60<40)
gj1=num1%60+40,cout<<num1%60+40;
else
gj1=num1%60,cout<<num1%60;
cout<<" "<<"防"<<" ";
if(num1%70<40)
fy1=num1%70+40,cout<<num1%70+40;
else
fy1=num1%70+40,cout<<num1%70;
cout<<" "<<"速"<<" ";
if(num1%80<40)
cout<<num1%80+40;
else
cout<<num1%80;
cout<<" "<<"敏"<<" ";
if(num1%90<40)
cout<<num1%90+40;
else
cout<<num1%90;
cout<<" "<<"魔"<<" ";
if(num1%45<30)
cout<<num1%35+30;
else
cout<<num1%45;
cout<<" "<<"抗"<<" ";
if(num1%65<30)
cout<<num1%65+40;
else
cout<<num1%65;
cout<<" "<<"智"<<" ";
cout<<num1%100<<endl;
cout<<name2<<" "<<"HP";
hp2=150+num2%450;
cout<<hp2<<" "<<"攻"<<" ";
if(num2%60<40)
gj2=num2%60+40,cout<<num2%60+40;
else
gj2=num2%60,cout<<num2%60;
cout<<" "<<"防"<<" ";
if(num2%70<40)
cout<<num2%70+40;
else
cout<<num2%70;
cout<<" "<<"速"<<" ";
if(num2%80<40)
cout<<num2%80+40;
else
cout<<num2%80;
cout<<" "<<"敏"<<" ";
if(num2%90<40)
cout<<num2%90+40;
else
cout<<num2%90;
cout<<" "<<"魔"<<" ";
if(num2%45<30)
cout<<num2%35+30;
else
cout<<num2%45;
cout<<" "<<"抗"<<" ";
if(num2%65<30)
cout<<num2%65+40;
else
cout<<num2%65;
cout<<" "<<"智"<<" ";
cout<<num2%100<<endl;
Sleep(3000);
//
Sleep(1000);
cout << 3 << endl;
Sleep(1000);
cout << 2 << endl;
Sleep(1000);
cout << 1 << endl;
Sleep(1000);
cout <<"Go!!!\n";
Sleep(1000);
system("cls");
//
fy1/=10; fy2/=10;
gj1/=10; gj2/=10;
int tb1=0,tb2=0,ft1=0,ft2=0,du1=0,du2=0,ys1=0,ys2=0;
while(hp1>0 && hp2>0)
{
srand((unsigned)time(NULL));
int fs=rand()%30,jishu=5+rand()%10;
if(fs==4 || fs==1)
{
int ran=rand()%2+1;
if(ran==1)
fs=1;
hp1+=jishu*gj[fs];
cout << name1 <<"使用"<< jin[fs] <<",回复"<< jishu*gj[fs] <<"点hp ";
cout << name1 <<"hp:"<< hp1 <<'\n';
}
else
if(fs==8)
{
int sjs=rand()%2;
if(hp1>hp2 || sjs)
{
cout << name1 <<"使用激光,造成75固定伤害!";
hp2-=75;
cout << name1 <<"hp:"<< hp1 <<" ";
cout << name2 <<"hp:"<< hp2 <<'\n';
}
else
{
swap(hp1,hp2);
cout << name1 <<"使用生命之轮,"<< name1 <<"的生命和"<< name2 <<"的生命互换。 ";
cout << name1 <<"hp:"<< hp1 <<" ";
cout << name2 <<"hp:"<< hp2 <<'\n';
}
}
else
if(fs==12)
{
tb1=4;
cout << name1 <<"发动铁壁!\n";
}
else
if(fs==15)
{
ft1=2;
cout << name1 <<"发动伤害反弹盾!\n";
}
else
if(fs==14)
{
if(!du1)
{
fs=18;
cout << name1 <<"发动攻击! "<< name2 <<"hp-12。\n";
hp2-=12;
cout << name1 <<"hp:"<< hp1 <<'\n';
cout << name2 <<"hp:"<< hp2 <<'\n';
}
else
cout << name1 <<"发动净化! "<< name1 <<"被净化了。\n";
if(du1!=0)
du1=0;
}
else
if(fs==13)
{
cout << name1 <<"发动吸血攻击!\n";
int yzk=rand()%30;
hp1-=yzk;
hp2+=yzk;
cout << name1 <<"hp:"<< hp1 <<" ";
cout << name2 <<"hp:"<< hp2 <<'\n';
}
else
if(fs==16)
{
int r=rand()%2;
if(r)
{
if(tb2!=0)
{
cout << name1 <<"发动瘟疫,被铁壁阻挡。";
hp2-=15;
cout << name2 <<"hp-15\n";
}
else
{
int ran=rand()%3+3;
hp2*=(10-ran)*0.1;
cout << name1 <<"发动瘟疫,"<< name2 <<"的hp减少"<< ran <<"0%。 "<< name2 <<"hp:"<< hp2 << endl;
}
}
else
cout << name1 <<"发动会心一击 "<< name2 <<"hp-30\n",hp2-=30;
}
else
if(fs==29)
{
cout << name1 <<"使用10连击 "<< name2 <<"hp";
for(int i=1;i<=10;i++)
{
jishu=5+rand()%15;
hp2-=jishu*0.55;
cout <<'-'<< (int)(jishu*0.55);
}
cout << endl;
cout << name1 <<"hp:"<< hp1 <<" ";
cout << name2 <<"hp:"<< hp2 <<'\n';
}
else
{
if(jin[fs]=="背刺")
{
cout << name1 <<"潜行到"<< name2 <<"的背后\n";
int sss=rand()%3;
if(sss==1)
cout << name1 <<"的潜行被识破\n\n";
else
{
cout << name1 <<"发动"<< jin[fs] << endl;
cout << name2 <<"hp-"<< abs(jishu*gj[fs]+gj1-fy2) <<'\n';
hp2-=abs(jishu*gj[fs]+gj1-fy2);
}
}
else
{
cout << name1 <<"发动"<< jin[fs] << endl;
if(fs==25)
du2=3;
if(fs==26)
ys1=3;
if(tb2!=0)
{
hp2-=1;
cout << name2 <<"hp-1\n";
}
else
if(ft2!=0)
{
hp1-=abs(jishu*gj[fs]+gj1-fy2);
cout << name1 <<"hp-"<< abs(jishu*gj[fs]+gj1-fy2) <<'\n';
}
else
{
int randon=rand()%40;
if(!randon)
{
cout << name2 <<"防御, hp-"<< abs(jishu*gj[fs]*0.6+gj1-fy2) << endl;
hp2-=abs((int)(jishu*gj[fs]*0.6+gj1)-fy2);
}
else
if(randon==1)
cout << name2 <<"闪避, hp-0\n";
else
{
cout << name2 <<"hp-"<< abs(jishu*gj[fs]+gj1-fy2) <<'\n';
hp2-=abs(jishu*gj[fs]+gj1-fy2);
}
}
cout << name1 <<"hp:"<< hp1 <<" ";
cout << name2 <<"hp:"<< hp2 <<'\n';
}
}
cout <<"\n";
Sleep(1000);
if(ft2!=0)
ft2--;
if(tb2!=0)
tb2--;
if(du2!=0)
{
cout << name2 <<"毒发, hp-"<< 10+rand()%10 << endl;
hp2-=10+rand()%10;
du2--;
}
if(ys2!=0)
{
cout << name2 <<"药水发挥药效, hp+"<< 10+rand()%10 << endl;
hp2+=10+rand()%10;
ys2--;
}
if(hp1<=0 || hp2<=0)
break;
//
//
//
//
fs=rand()%30,jishu=5+rand()%10;
if(fs==4 || fs==1)
{
int ran=rand()%2+1;
if(ran==1)
fs=1;
hp2+=jishu*gj[fs];
cout << name2 <<"使用"<< jin[fs] <<",回复"<< jishu*gj[fs] <<"点hp ";
cout << name2 <<"hp:"<< hp2 <<'\n';
}
else
if(fs==8)
{
if(hp2>hp1)
{
cout << name2 <<"使用激光,造成75固定伤害!";
hp1-=75;
cout << name2 <<"hp:"<< hp2 <<" ";
cout << name1 <<"hp:"<< hp1 <<'\n';
}
else
{
swap(hp1,hp2);
cout << name2 <<"使用生命之轮,"<< name2 <<"的生命和"<< name1 <<"的生命互换。 ";
cout << name2 <<"hp:"<< hp2 <<" ";
cout << name1 <<"hp:"<< hp1 <<'\n';
}
}
else
if(fs==12)
{
tb2=4;
cout << name2 <<"发动铁壁!\n";
}
else
if(fs==15)
{
ft2=2;
cout << name2 <<"发动伤害反弹盾!\n";
}
else
if(fs==14)
{
if(!du2)
{
fs=18;
cout << name2 <<"发动攻击! "<< name1 <<"hp-12。\n";
hp1-=12;
cout << name2 <<"hp:"<< hp2 <<'\n';
cout << name1 <<"hp:"<< hp1 <<'\n';
}
else
cout << name2 <<"发动净化! "<< name2 <<"被净化了。\n";
if(du2!=0)
du2=0;
}
else
if(fs==13)
{
cout << name2 <<"发动吸血攻击!\n";
int yzk=rand()%30;
hp1-=yzk;
hp2+=yzk;
cout << name2 <<"hp:"<< hp2 <<" ";
cout << name1 <<"hp:"<< hp1 <<'\n';
}
else
if(fs==16)
{
int r=rand()%2;
if(r)
{
if(tb1!=0)
{
cout << name2 <<"发动瘟疫,被铁壁阻挡。 ";
hp1-=15;
cout << name1 <<"hp-15\n";
}
else
{
int ran=rand()%3+3;
hp1*=(10-ran)*0.1;
cout << name2 <<"发动瘟疫,"<< name1 <<"的hp减少"<< ran <<"0%。 "<< name1 <<"hp:"<< hp1 << endl;
}
}
else
cout << name2 <<"发动会心一击 "<< name1 <<"hp-30\n",hp1-=30;
}
else
if(fs==29)
{
cout << name2 <<"使用10连击 "<< name1 << "hp";
for(int i=1;i<=10;i++)
{
jishu=5+rand()%15;
hp1-=jishu*0.55;
cout <<'-'<< (int)(jishu*0.55);
}
cout << endl;
cout << name2 <<"hp:"<< hp2 <<" ";
cout << name1 <<"hp:"<< hp1 <<'\n';
}
else
{
if(jin[fs]=="背刺")
{
cout << name2 <<"潜行到"<< name1 <<"的背后\n";
int sss=rand()%3;
if(sss==1)
cout << name2 <<"的潜行被识破\n\n";
else
{
cout << name2 <<"发动"<< jin[fs] << endl;
cout << name1 <<"hp-"<< abs(jishu*gj[fs]+gj1-fy2) <<'\n';
hp1-=abs(jishu*gj[fs]+gj1-fy2);
}
}
else
{
cout << name2 <<"发动"<< jin[fs] << endl;
if(fs==25)
du1=3;
if(fs==26)
ys2=3;
if(tb1!=0)
{
hp1-=1;
cout << name1 <<"hp-1\n";
}
else
if(ft1!=0)
{
hp2-=abs(jishu*gj[fs]+gj2-fy1);
cout << name2 <<"hp-"<< abs(jishu*gj[fs]+gj2-fy1) <<'\n';
}
else
{
int randon=rand()%40;
if(!randon)
{
cout << name1 <<"防御, hp-"<< abs(jishu*gj[fs]*0.6+gj2-fy1)<< endl;;
hp1-=(int)(jishu*gj[fs]*0.6+gj2);
}
else
if(randon==1)
cout << name1 <<"闪避, hp-0\n";
else
{
cout << name1 <<"hp-"<< abs(jishu*gj[fs]+gj2-fy1) <<'\n';
hp1-=abs(jishu*gj[fs]+gj2-fy1);
}
}
}
cout << name2 <<"hp:"<< hp2 <<" ";
cout << name1 <<"hp:"<< hp1 <<'\n';
}
cout <<"\n---------------------------------------\n\n";
Sleep(1000);
if(ft1!=0)
ft1--;
if(tb1!=0)
tb1--;
if(du1!=0)
{
cout << name1 <<"毒发, hp-"<< 10+rand()%10 << endl;
hp1-=10+rand()%10;
du1--;
}
if(ys1!=0)
{
cout << name1 <<"药水发挥药效, hp+"<< 10+rand()%10 << endl;
hp1+=10+rand()%10;
ys1--;
}
}
if(hp1>0)
cout << name1 <<"赢了。";
else
cout << name2 <<"赢了。";
system("pause");
return 0;
}
本文介绍了一款双人文字对战小游戏,玩家可以进行自动化的战斗对决,体验紧张刺激的策略竞技。游戏以文字描述战斗过程,简单易上手,适合朋友间娱乐对战。
537

被折叠的 条评论
为什么被折叠?



