暂存
2025-06-08 00:50:47
发布于:上海
#include <bits/stdc++.h>//初学者游戏作品,过于粗糙,勿喷 制作者:Blown sand
using namespace std;
int money=0,cha=0;//钱数,所选英雄
int lifebottle=0,TNT=0,yinhe=100;//道具数量
int ucha[105]={1,1,0,0,0,0,0};//表示解锁的英雄,1表示解锁,0表示没解锁
int work[105]={1,2,3,4,5,6,7,8,9,10,11};//表示任务,每个数表示一种任务
int w_win=0,w_qing=0;//统计各项杂项
int wujin=0,past1=0,lifeup=0,choice[5],atk=0,upbls[15];//无尽专用变量
int b0,b2,b4,b5,b6,b7,b8,b9,b10,b12;//史诗祝颂
int bscho=0;//首领训练专用变量
//在此处定义变量,就算没有初始化值,它们的值也为0。这里给它们初始化值只是为了看起来直观
void living();//函数的声明
void dework(int n){//清除第n个任务
for(int i=n-1;i<100;i++){
work[i]=work[i+1];
}
}
void upbless(){
cout<<"你的魂灵从躯壳中剥离,古老的史诗在眼前展开--"<<endl;
int beneson=0,plus=0;
srand(time(NULL));
beneson=rand()%13;
for(int bls=1;bls<=2;bls++){
cout<<bls<<".";
while(upbls[beneson]==1||choice[1]==beneson){
beneson+=5;
if(beneson>12)beneson-=12;
}
if(beneson==0){
cout<<"'以太神息'埃忒里俄斯--我方角色进行任意行动后造成逐次提高的伤害,回合开始后重置"<<endl;
choice[bls]=0;
}else if(beneson==1){
cout<<"'金口神谕'克吕索斯托弥亚--每回合结束时附加本回合角色造成伤害的40%"<<endl;
choice[bls]=1;
}else if(beneson==2){
cout<<"'狮之征服'莱昂达玛斯--获得一次免死效果,廊层切换后刷新"<<endl;
choice[bls]=2;
}else if(beneson==3){
cout<<"'满月深眸'塞莱诺珀--战斗开始时我方角色获得'月茧',每回合受到伤害固定减少30,持续4回合"<<endl;
choice[bls]=3;
}else if(beneson==4){
cout<<"'应运而生'彭忒俄斯--每回合开始时获得一个随机道具效果"<<endl;
choice[bls]=4;
}else if(beneson==5){
cout<<"'幽夜预言'尼克塔斯--每回合结束时累积固定值'预言','预言'高于敌人生命时触发斩杀"<<endl;
choice[bls]=5;
}else if(beneson==6){
cout<<"'永恒星辉'阿斯忒里俄斯--战斗开始后获得可抵御总计100伤害的护盾"<<endl;
choice[bls]=6;
}else if(beneson==7){
cout<<"'缪斯颂歌'卡利俄佩--颂歌每回合攻击次数+1"<<endl;
choice[bls]=7;
}else if(beneson==8){
cout<<"'白昼礼赞'赫利俄多洛斯--第4回合后进入'白昼',每回合回复25生命"<<endl;
choice[bls]=8;
}else if(beneson==9){
cout<<"'潮汐律法'欧律诺墨--为我方角色提供交替变化的生命回复/额外伤害"<<endl;
choice[bls]=9;
}else if(beneson==10){
cout<<"'震雷连枷'克劳诺斯--回合结束时造成1~3次固定伤害"<<endl;
choice[bls]=10;
}else if(beneson==11){
cout<<"'驭马征服'伊波塔斯--每2回合使我方角色连续行动1次"<<endl;
choice[bls]=11;
}else if(beneson==12){
cout<<"'酒神狂欢'阿伽薇--战斗开始时获得4层'醉意',回合结束时每拥有1层'醉意'附加本回合角色造成伤害的30%并使'醉意'-1"<<endl;
choice[bls]=12;
}
}
int xz=0;
cin>>xz;
if(choice[xz]==0)upbls[0]=1;
if(choice[xz]==1)upbls[1]=1;
if(choice[xz]==2)upbls[2]=1;
if(choice[xz]==3)upbls[3]=1;
if(choice[xz]==4)upbls[4]=1;
if(choice[xz]==5)upbls[5]=1;
if(choice[xz]==6)upbls[6]=1;
if(choice[xz]==7)upbls[7]=1;
if(choice[xz]==8)upbls[8]=1;
if(choice[xz]==9)upbls[9]=1;
if(choice[xz]==10)upbls[10]=1;
if(choice[xz]==11)upbls[11]=1;
if(choice[xz]==12)upbls[12]=1;
choice[1]=-1;
choice[2]=-1;
system("cls");
}
void blessing(){
if(wujin==5||wujin==10||wujin==13){
upbless();
return;
}
cout<<"廊中响起悠远的祝颂..."<<endl;
int beneson=0,plus=0;
srand(time(NULL));
beneson=rand()%8;
plus=(money+1)%7;
for(int bls=1;bls<=2;bls++){
cout<<bls<<".";
beneson+=plus;
if(beneson>7)beneson-=7;
if(beneson==0){
cout<<"胜利生命自动回复+10 ";
choice[bls]=0;
}else if(beneson==1){
cout<<"生命回复20 ";
choice[bls]=1;
}else if(beneson==2){
cout<<"生命回复30 ";
choice[bls]=2;
}else if(beneson==3){
cout<<"颂歌伤害+5 ";
choice[bls]=3;
}else if(beneson==4){
cout<<"额外获得50钱 ";
choice[bls]=4;
}else if(beneson==5){
cout<<"额外获得75钱 ";
choice[bls]=5;
}else if(beneson==6){
cout<<"生命回复40 ";
choice[bls]=6;
}else if(beneson==7){
cout<<"胜利生命自动回复+15 ";
choice[bls]=7;
}
}
cout<<endl;
int xz=0;
cin>>xz;
if(choice[xz]==0)lifeup+=10;
if(choice[xz]==1)past1+=20;
if(choice[xz]==2)past1+=30;
if(choice[xz]==3)atk+=5;
if(choice[xz]==4)money+=50;
if(choice[xz]==5)money+=75;
if(choice[xz]==6)past1+=40;
if(choice[xz]==7)lifeup+=15;
system("cls");
}
void account(int life1,int life2,int turn){
if(life2>0){
cout<<"你的意识渐渐消散,倒在了光明前的最后一级阶梯..."<<endl;
money+=100;
return;
}
system("cls");
cout<<"历经"<<turn<<"回合的鏖战,你终于迈向了光明..."<<endl<<"你的身侧,伫立着:"<<endl;
for(int i=0;i<13;i++){
if(upbls[i]==1&&i==0)cout<<"'以太神息'埃忒里俄斯"<<endl;
if(upbls[i]==1&&i==1)cout<<"'金口神谕'克吕索斯托弥亚"<<endl;
if(upbls[i]==1&&i==2)cout<<"'狮之征服'莱昂达玛斯"<<endl;
if(upbls[i]==1&&i==3)cout<<"'满月深眸'塞莱诺珀"<<endl;
if(upbls[i]==1&&i==4)cout<<"'应运而生'彭忒俄斯"<<endl;
if(upbls[i]==1&&i==5)cout<<"'幽夜预言'尼克塔斯"<<endl;
if(upbls[i]==1&&i==6)cout<<"'永恒星辉'阿斯忒里俄斯"<<endl;
if(upbls[i]==1&&i==7)cout<<"'缪斯颂歌'卡利俄佩"<<endl;
if(upbls[i]==1&&i==8)cout<<"'白昼礼赞'赫利俄多洛斯"<<endl;
if(upbls[i]==1&&i==9)cout<<"'潮汐律法'欧律诺墨"<<endl;
if(upbls[i]==1&&i==10)cout<<"'震雷连枷'克劳诺斯"<<endl;
if(upbls[i]==1&&i==11)cout<<"'驭马征服'伊波塔斯"<<endl;
if(upbls[i]==1&&i==12)cout<<"'酒神狂欢'阿伽薇"<<endl;
}
cout<<"带着祂们的意志,继续前行吧..."<<endl;
money+=200;
return;
}
void game(){
if(wujin<=1){
b5=0;
b6=0;
b12=0;
cha=0;
cout << "欢迎来到AC荣耀,请选择你的英雄。" << endl;
cout << "输入:1.张斌老师 2.大黄";
if(ucha[2]==1)cout << " 3.黄金矿工";
if(ucha[3]==1)cout << " 4.星辰";
if(ucha[4]==1)cout << " 5.张天境";
if(ucha[5]==1)cout << " 6.杨凡";
if(ucha[6]==1)cout << " 7.'骑士'";
cout << endl;
do{//这里的do-while循环是为了让玩家在输入错误时能够再次执行输入的代码,输入正确才继续。
int o1;
cin >> o1;
switch(o1){
case 1:cha=1;break;
case 2:cha=2;break;
case 3:if(ucha[2]==1){cha=3;}else{cha=0;cout << "你没有这个英雄。请重新输入。"<< endl;}break;
case 4:if(ucha[3]==1){cha=4;}else{cha=0;cout << "你没有这个英雄。请重新输入。"<< endl;}break;
case 5:if(ucha[4]==1){cha=5;}else{cha=0;cout << "你没有这个英雄。请重新输入。"<< endl;}break;
case 6:if(ucha[5]==1){cha=6;}else{cha=0;cout << "你没有这个英雄。请重新输入。"<< endl;}break;
case 7:if(ucha[6]==1){cha=7;}else{cha=0;cout << "你没有这个英雄。请重新输入。"<< endl;}break;
default:cout << "你没有这个英雄。请重新输入。"<< endl;break;
}
}while(cha!=1&&cha!=2&&cha!=3&&cha!=4&&cha!=5&&cha!=6&&cha!=7);
system("cls");//这个东西是我从书上学的黑科技,它可以清除全屏
if(cha==1)cout << "你选择了张斌老师作为你的英雄,初始生命值为100。"<< endl;
else if(cha==2)cout << "你选择了大黄作为你的英雄,初始生命值为140。"<< endl;
else if(cha==3)cout << "你选择了黄金矿工作为你的英雄,初始生命值为90。"<< endl;
else if(cha==4)cout << "你选择了星辰作为你的英雄,初始生命值为100。"<< endl;
else if(cha==5)cout << "你选择了张天境作为你的英雄,初始生命值为120。"<< endl;
else if(cha==6)cout << "你选择了杨凡作为你的英雄,初始生命值为100。"<< endl;
else if(cha==7)cout << "你选择了'骑士'作为你的英雄,初始生命值为100。"<< endl;
}else cout<<"你踏入了第"<<wujin<<"道回廊。"<<endl;
if(upbls[2]==1)b2=1;//重置免死
if(upbls[6]==1)b6=100;//重置护盾
if(upbls[12]==1)b12=4;//重置醉意
cout << "正在为你匹配对手..." << endl;
int p2=0;
srand(time(NULL));
p2=rand()%5;
if(p2==0)cout << "匹配成功,你的对手是皮卡丘。" << endl;
else if(p2==1)cout << "匹配成功,你的对手是@哥。" << endl;
else if(p2==2)cout << "匹配成功,你的对手是美西螈。" << endl;
else if(p2==3)cout << "匹配成功,你的对手是尉官。" << endl;
else if(p2==4)cout <<"匹配成功,你的对手是神父。"<<endl;
int life1=100,life2=100,past2=0,
atk1=100,//大黄
gold=0,boom=2,//黄金矿工
spirit=0,//星辰
bullet=0,weakness=0,//张天境
heart=0,feel=0,//杨凡
xc=0,kill=10,gm=0,//骑士
wait=0,
power9999=0,//美西螈
guard=0,harm=0,//尉官
mdyhv=1,//神父
xiang=0;//投降不会得到任何奖励
if(cha==2)life1=140;
if(cha==3)life1=90;
if(cha==5)life1=120;
if(p2==1||p2==3)life2=120;
int turn=0;//这是一个计轮器
int allatk1,allatk2;//这是两个伤害记录
if(wujin>1){//生命继承
life1=past1+10+lifeup;
life2=(life2-10+10*wujin)*(1-0.1+0.1*wujin);
}
past2=life2;
past1=life1;
while(life1>0&&life2>0){//一直互殴直到有一方血量不大于0
if(life1>200)life1=200;
int o=0,wt=0;
if(wait==1)wt=1;
wait=0;
past2=life2;
past1=life1;
if(upbls[4]==1){
b4=0;
srand(time(NULL));
b4=rand()%3;
if(b4==0){
cout << "'应运而生'使用1个血瓶,回复了20点生命值。" <<endl;life1+=20;past1+=20;
for(int i=1;i<=2;i++){
if(work[i-1]==2){
dework(i);
cout << endl << "您完成了任务:回光反照,奖励100钱。" << endl;
money+=100;
}
}
}else if(b4==1){
cout << "'应运而生'使用1个炸damn,对手受到了20点伤害。" <<endl;life2-=20;
}else if(b4==2){
cout<<"'应运而生'的银河幸运星~"<<endl;life1+=15;life2-=15;
}
}
do{
cout<<"当前是第"<<turn+1<<"回合 你的生命值为" << life1 << " " << "对手的生命值为" << life2 << endl;
cout << "————————————————————————" << endl;
cout << "请选择你的行动。输入:1.技能 2.道具 3.投降 4.查看" << endl;
cout << "————————————————————————" << endl;
cin >> o;
if(o==2&&wt==1){
o=-1;
}
system("cls");
int cho2=0;
int o2=0;
switch(o){
case 1:cout << "使用哪个技能?" <<endl;break;
case 2:
cho2=0;
cout << "请输出要使用的道具编号。" << endl << "1.血瓶 2.炸弹 3.银河大乐透" << endl;
do{
cin >> o2;
switch(o2){
case 1:cho2=1;break;
case 2:cho2=2;break;
case 3:cho2=3;break;
default:cout << "你输入的数字应该是1或者2或者3才对。给我重输。"<< endl;break;
}
}while(cho2!=1&&cho2!=2&&cho2!=3);
if(cho2==1){
if(lifebottle>0){
cout << "你使用1个血瓶,回复了20点生命值。" <<endl;life1+=20;past1+=20;lifebottle--;wait=1;
for(int i=1;i<=2;i++){
if(work[i-1]==2){
dework(i);
cout << endl << "您完成了任务:回光反照,奖励100钱。" << endl;
money+=100;
}
}
}else{
cout << "你的血瓶不足,使用失败。" << endl;o=0;
}
}else if(cho2==2){
if(TNT>0){
cout << "你使用1个炸弹,对手受到了40点伤害。" <<endl;life2-=40;TNT--;wait=1;
}else{
cout << "你的炸弹不足,使用失败。" << endl;o=0;
}
}else if(cho2==3){
if(yinhe>0){
int letou1=0;
srand(time(NULL));
letou1=rand()%4;
if(letou1==2){
cout<<"银河大乐透砰地炸开,帮你跳过了这一回合~"<<endl;yinhe--;
}
else if(letou1<=1){
cout<<"银河大乐透里刮出了--99钱!"<<endl;yinhe--;wait=1;money+=99;
}
else if(letou1==3){
cout<<"大奖!!!又一位银河幸运星!"<<endl;yinhe--;wait=1;life1+=30;life2-=30;
}
}else{
cout << "你的银河大乐透不足,使用失败。" << endl;o=0;
}
}
break;
case 3:cout << "你投降了。" <<endl;life1=0;xiang=1;break;
case 4:
if(cha==1){
cout << "你的英雄是:张斌老师 ";
}else if(cha==2){
cout << "你的英雄是:大黄 ";
}else if(cha==3){
cout << "你的英雄是:黄金矿工 ";
}else if(cha==4){
cout << "你的英雄是:星辰 ";
}else if(cha==5){
cout << "你的英雄是:张天境 ";
}else if(cha==6){
cout << "你的英雄是:杨凡 ";
}else if(cha==7){
cout << "你的英雄是:'骑士' ";
}
if(p2==0){
cout << "对手的英雄是:皮卡丘" << endl;
}else if(p2==1){
cout << "对手的英雄是:@哥" << endl;
}else if(p2==2){
cout << "对手的英雄是:美西螈" << endl;
}else if(p2==3){
cout << "对手的英雄是:尉官" << endl;
}else if(p2==4){
cout<<"对手的英雄是:神父"<<endl;
}
cout << "你拥有的血瓶数量为" << lifebottle << endl;
cout << "你拥有的炸弹数量为" << TNT << endl;
cout << "当前游戏轮数为" << turn+1 << endl;
break;
case(-1):cout<<"额外回合中不可使用道具。"<<endl;break;
default:cout << "你输入的数字应该是1~4之间的整数才对。"<< endl;break;
}
}while(o!=1&&o!=2&&o!=3&&o!=4);
if(o==3||o==4){
wait=2;//如果选择 投降 或者 查看 选项,就不会跳过这一回合。
}
if(o==1){
if(cha==1){
//张斌老师的技能
do{
cout << "输入:1.大喊一声老师真帅 2.跑一圈" <<endl;
cin >> o;
switch(o){
case 1:cout << "你:\"老师真帅\"对手被恶心到,失去了25点生命值。" <<endl;life2-=25;break;//秀一秀转义字符
case 2:cout << "你跑了一圈,但是没有任何用。" <<endl;//这是这个游戏的一个笑点所在,绝对不能改(?)。
for(int i=1;i<=2;i++){
if(work[i-1]==5){
dework(i);
cout << endl << "您完成了任务:运动狂人,奖励道具<血瓶>*4。";
lifebottle+=4;
}
}
break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}else if(cha==2){
//大黄的技能
do{
cout << "输入:1.做题 2.放狗咬对面" <<endl;
cin >> o;
switch(o){
case 1:cout << "你做了一道题,提升了大黄百分之30的攻击力。" <<endl;atk1*=1.3;break;
case 2:cout << "冲刺,葱!对手受到了来自大黄" << (int)(atk1*0.21) << "点的伤害。" << endl;life2-=(int)(atk1*0.21);
for(int i=1;i<=2;i++){
if(work[i-1]==6&&(int)(atk1*0.21)>=60){
dework(i);
cout << endl << "您完成了任务:核爆大佬,奖励道具<炸弹>*2。";
TNT+=2;
}
}
break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}else if(cha==3){
//黄金矿工的技能
do{
cout << "输入:1.淘金 2.扔炸药 3.贿赂这个游戏" <<endl;
cin >> o;
switch(o){
case 1:gold+=2;cout << "你淘到2块金矿,你现在有" << gold << "块金矿,你的生命值增加了4点。" <<endl;life1+=4;past1+=4;break;
case 2:if(gold==0){
cout << "你没有金矿,用不了炸药。" << endl;o=0;
}else{
if(boom>0){
cout << "你扔出1个炸药,炸掉了金矿,对手也被炸到,受到了32点伤害" << endl;
boom--;
life2-=32;
}else{
cout << "你的炸药用完了,不能再扔炸药。" << endl;
o=0;
}
}
break;
case 3:if(gold>0){
cout << "你用所有的金矿贿赂了程序,程序对对手造成了" << gold * 9 << "点伤害,又回复了你" << gold * 5 << "点生命值" <<endl;
life2-=gold*9;
for(int i=1;i<=2;i++){
if(work[i-1]==7&&gold*9>=60){
dework(i);
cout << endl << "您完成了任务:顶级行贿,奖励300钱。";
money+=300;
}
}
life1+=gold*5;
past1+=gold*5;
gold=0;
}else{
cout << "你没有金矿,不能贿赂。" << endl;
o=0;
}
break;
default:cout << "你输入的数字应该是1、2或者3才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2&&o!=3);
}else if(cha==4){
//星辰的技能
do{
cout << "输入:1.集中精神 2.切!" <<endl;
//星辰的二技能复刻我小时候写的小说,里面我第二个人格的大招名字是青云疾现切,这个大招可以快速挥刀很多次,实在是太帅了(
cin >> o;
switch(o){
case 1:if(turn%4!=3){
if(spirit<=5){
spirit+=5;
cout << "你成功集中了5点精神,你当前的精神力为" << spirit << "。" <<endl;
}else if(spirit==10){
cout << "当前精神力已达最大值10,不能再集中精神。" <<endl;
o=0;
}else{
cout << "你集中了5点精神,但是你的精神力达到了最大值,溢出的精神力已经丢失。你当前的精神力为10。" <<endl;
}
}else{
cout << "屑星辰不能在游戏的每四轮的最后一轮集中精神。当前轮数为" << turn+1 << "。" <<endl;
o=0;
}
break;
case 2:cout << "星辰凝聚精神在青龙匕首上,并使用其切断了对手的节奏线,对手受到了" << w_qing*4+17 << "点伤害。" << endl;life2-=spirit+15;
if(spirit>=4){
cout << "星辰通过散失3点精神力,停滞了时间,本回合星辰会再次行动。" << endl;spirit-=3;wait=1;
}
w_qing++;
for(int i=1;i<=2;i++){
if(work[i-1]==8&&w_qing>=4){
dework(i);
cout << endl << "您完成了任务:青云疾现切,奖励英雄<张天境>。";
ucha[4]=1;
}
}
break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}else if(cha==5){
//张天境的技能
if(bullet==0){
cout << "输入:1.绝技:徒手开火 2.子弹装填" <<endl;
do{
cin >> o;
switch(o){
case 1:cout << "张天境在子弹中充入气息,使子弹从手中迸裂而出,烧焦的子弹对对手造成了15点伤害。" << endl;life2-=15;
if(weakness>=1){
cout << "对手被击中弱点,受到的伤害增加" << weakness*15 << ",为" << weakness*15+15 << "点。" << endl;
life2-=weakness*15;
}
for(int i=1;i<=2;i++){
if(work[i-1]==9&&weakness*15>=30){
dework(i);
cout << endl << "您完成了任务:白虎爆炎破,奖励道具<炸弹>*2。";
TNT+=2;
}
}
break;
case 2:cout << "张天境在空的弹匣中流畅地连续填入2颗子弹,当前子弹数为2。" << endl;bullet+=2;break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}else{
cout << "输入:1.破! 2.子弹装填" <<endl;
do{
cin >> o;
switch(o){
case 1:cout << "张天境举起浅蓝手枪瞄准对手,看准时机扣下扳机,对手被击中,受到了" << weakness*5+20 << "点伤害。" << endl;life2-=weakness*5+20;bullet--;
cout << "张天境从对手身上发现了新的弱点。" << endl;weakness++;break;
case 2:if(bullet<=4){
bullet++;
cout << "张天境填入1颗子弹,当前子弹数为" << bullet << "。" << endl;
}else if(bullet==5){
cout << "张天境填入1颗子弹,当前子弹数为6,无法再填入更多子弹。" << endl;bullet++;
}else{
cout << "无法再填入更多子弹。" << endl;o=0;
}
break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}
}else if(cha==6){
//杨凡的技能
do{
cout << "输入:1.船桨打击 ";
if(heart<25){
cout << "2.稍作观察";
}else{
cout << "2.开始“科学推理”";
}
cout << endl;
cin >> o;
srand(time(NULL));int R=rand()%2+1;
switch(o){
case 1:cout << "杨凡手持祖传多功能铲形船桨挥击对手,对手受到了15点钝器造成的伤害。" << endl;life2-=15;
cout << "凡人就是凡人,这一击似乎连什么特殊效果都没有。" << endl;break;
case 2:
if(heart<25){
cout << "杨凡试图对对手进行观察。" << endl;
if(R==1){
cout << "可惜他只是个普通人,并没有发现什么。" << endl;
cout << "不过,对于刚才那小小的失败,他似乎更加激动了。" << endl;heart+=5;
}else{
cout << "不小心被对手察觉到了。" << endl;
cout << "对手果断地打断了人如其名的杨凡的观察。杨凡受到了10点来自对手的伤害。" << endl;life1-=10;
cout << "不过,杨凡发现了对手刻意隐藏而又不小心显露的特质,他仍然更加激动了。" << endl;heart+=10;
if(heart>25)heart=25;
}
}else{
cout << "杨凡使用了科学推理,平静了自己的情绪,回复了10点生命值。对手心绪被扰乱,受到了20点伤害。"<<endl;life2-=20;life1+=10;past1+=10;feel+=10;heart-=10;
}break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
if(heart>0){
if(heart>=10){
cout << "“有一股热血涌动着。”" << endl << "杨凡异常兴奋,回复了" << (heart+8)/2 << "点生命值。" << endl;
life1+=(heart+8)/2;
past1+=(heart+8)/2;
}else{
cout << "杨凡有种“推理”的欲望。" << endl;
}
}
}else if(cha==7){
//骑士的技能
do{
cout << "输入:1.战术同频:强攻 2.战术推演:相持 3.荣誉共鸣" <<endl;
cin >> o;
switch(o){
case 1:cout << "无论黑白的暴力美学--'骑士'以精湛的剑术造成了"<<kill<<"点伤害";life2-=kill;
if(xc>0){
cout<<"--进攻中,自当舍弃一切退避之心";
xc=0;
}
cout<<"。"<<endl;
break;
case 2:cout << "有时,退避也不失为一计良策。";xc+=1;
if(xc==3){
cout<<"然而,一味退避并非骑士的行径,对吧?";
o=0;
}
cout<<endl;
break;
case 3:if(gm<=1){
cout << "这是同为战士的你我本就应有的共鸣--那么,请你为我奉献吧。" <<endl<<"'骑士'身侧的丝线若隐若现。"<<endl;
kill+=5;
gm++;
break;
}
else{
cout<<"丝线不堪更重的的负荷--体谅亦是骑士的美德,";
o=0;
}
default:cout << "再来一次吧,正确的路总会被寻得。"<< endl;break;
}
}while(o!=1&&o!=2&&o!=3);
}
if(upbls[0]==1){
cout<<"'以太之息'的吹拂造成了"<<b0<<"点伤害。"<<endl;
life2-=b0;
}
if(upbls[11]==1&&wt==0&&turn%2==0){
cout<<"不止的寻征!"<<endl;
wait=1;
}
}
if(wait==1)b0+=4;
if(wait==0){
b0=12;//以太之息
int v=0;//敌人攻击力
if(p2==0){
//皮卡丘的技能
if(turn%4==3||turn%6==1){
v=(200-life1)/10+20;
cout << "对手皮卡丘使用了铁尾,对你造成了" << v << "点伤害。" << endl;
life1-=v;
}else{
v=20;
cout << "对手皮卡丘使用了电球,对你造成了20点伤害。" <<endl;
life1-=v;
}
}else if(p2==1){
//@哥的技能
if(turn%4==2||turn%7==5){
v=23;
system("cls");
cout << "对手@哥使用了清屏,对你造成了2(2)3(3)点伤害。" << endl;
life1-=v;
}else{
srand(time(NULL));
int random=rand()%11+20;
v=random;
cout << "对手@哥使用了随机弹幕轰击,对你造成了" << random << "点伤害。" <<endl;
for(int i=1;i<=random;i++){
cout << "@" << endl;
}
life1-=random;
}
}else if(p2==2){
//美西螈的技能
if(turn%4==0||turn%9==7){
v=15;
cout << "对手美西螈大喊\"给我9999金币\",对你造成了15点伤害,";
if(money>=10){
cout << "并偷取了你10钱。";
money-=10;
power9999+=10;
}else{
cout << "但是你太穷了,没有足够的钱给美西螈。";
}
cout << endl;
life1-=v;
}else{
if(power9999>2){
power9999-=2;
v=power9999+14;
cout << "对手美西螈使用了谢谢你!扔出2钱并对你造成了" << v << "点伤害。";
if(v>19){
cout << "美西螈偷取的钱太多了,造成的伤害很高。";
}
}else{
cout << "美西螈使用唔唔唔,获得5钱。";
power9999+=5;
}
cout << endl;
life1-=v;
}
}else if(p2==3){
//尉官的技能
if(guard>0){
harm=(int)(0.8*past2-0.8*life2);
guard--;
life1-=harm;
cout << "对手尉官使用了御侮,对你造成了" <<harm<< "点伤害。" <<endl;
}
if(turn%4==1){
cout << "对手尉官使用了抵死,进入了2回合的守备架势并回复了20点生命值。"<< endl;
guard=2;
life2+=20;
}else{
v=10;
cout << "对手尉官使用了戳刺,对你造成了" <<v<< "点伤害。" <<endl;
life1-=v;
}
}else if(p2==4){
if(turn==0){
cout<<"『螺旋阶梯』『独角仙』『废墟街道』『无花果塔』『独角仙』『德蕾莎之道』『独角仙』『特异点』『乔托』『天使』『绣球花』『独角仙』『特异点』『秘密皇帝』 『我很佩服第一个吃蘑菇的人,因为有毒也不一定呢』"<<endl;
}else if(turn==1){
cout<<"『话已至此』『made in heaven!』"<<endl;
}else{
v=15;
for(int tm=1;tm<=mdyhv;tm++){
cout<<"神父使用了『觉悟者恒幸福』,造成了"<<v<<"伤害。"<<endl;
life1-=v;
}
}
if(turn%2==1){
cout<<"时间开始加速了..."<<endl;
mdyhv++;
}
}
allatk1=past1-life1;
if(allatk1<0)allatk1=0;
if(spirit>=2&&v>=1){
cout << "但是星辰的精神力正盛,减少了受到的伤害,实际只受到" << allatk1-(spirit-1) << "伤害" << endl;
life1+=spirit-1;
allatk1-=spirit-1;
}
if(xc>=1&&xc<=2){
cout << "理论早有推演,'骑士'实际只受到" << allatk1-(int)(0.3*(3-xc)*allatk1) << "伤害。" << endl;
life1+=(int)(0.3*(3-xc)*allatk1);
allatk1-=(int)(0.3*(3-xc)*allatk1);
}
if(gm>0){
cout << "'骑士'身侧响起嘶哑的共鸣," << (int)(0.2*gm*allatk1) << "的伤害被'赠送'给对手。" << endl;
life1+=(int)(0.2*gm*allatk1);
allatk1-=(int)(0.2*gm*allatk1);
life2-=(int)(0.2*gm*allatk1);
for(int i=1;i<=2;i++){
if(work[i-1]==11&&xc>=2&&gm==2){
dework(i);
cout << endl << "您完成了任务:克敌机先,奖励银河大乐透*3。";
yinhe+=3;
}
}
}
if(feel>0&&allatk1>=1){
cout << "但是对手心神不宁,产生了恐惧,也受到" << feel << "伤害" << endl;
life2-=feel;
}
if(atk>0){
for(int i=0;i<=upbls[7];i++){
cout<<"廊中颂歌为敌人带去了"<<atk<<"点伤害..."<<endl;
life2-=atk;
}
}
if(upbls[9]==1){
if(turn%2==0){
cout<<"凶猛的浪涌吞噬了敌人的身形,造成了15伤害"<<endl;
life2-=15;
}else{
cout<<"温暖的流泉汇聚在你身畔,为你回复了15生命"<<endl;
life1+=15;
}
}
if(upbls[10]==1){
b10=0;
srand(time(NULL));
b10=rand()%3;
for(int i=0;i<=b10;i++){
cout<<"震雷威严地自天穹落下,造成了10伤害"<<endl;
life2-=10;
}
}
//对敌人的伤害都写在这前面 方便统计
allatk2=past2-life2;
if(allatk2<0)allatk2=0;
if(upbls[1]==1){
cout<<"智者以神谕宣告终章,造成了"<<(int)(0.4*allatk2)<<"点伤害。"<<endl;
life2-=(int)(0.4*allatk2);
}
if(upbls[12]==1&&b12>0){
cout<<"酒神恣意倾倒蜜酿,造成了"<<(int)(0.3*b12*allatk2)<<"点伤害。"<<endl;
life2-=(int)(0.3*b12*allatk2);
b12--;
}
if(upbls[3]==1&&turn<=3){
cout<<"'月茧'庇佑着你..."<<endl;
life1+=30;
allatk1-=30;
}
if(upbls[8]==1&&turn==3){
cout<<"新世界的烈阳冉冉升起..."<<endl;
}
if(upbls[8]==1&&turn>3){
life1+=25;
}
if(life1<=0&&b2){
cout<<"'狮之征服'的意志让你重新站起..."<<endl;
life1=1;
b2=0;
}
if(upbls[5]==1){
b5+=20;
if(b5>life2)cout<<"幽夜拉开帷幕,预言终将应验。"<<endl;
life2=0;
}
if(b6>0&&allatk1>0){
b6-=allatk1;
life1+=allatk1;
allatk1=0;
if(b6<0){
life1+=b6;
allatk1-=b6;
b6=0;
}
}
if(allatk1<0)life1+=allatk1;
w_qing=0;
turn++;
}
}
if(wujin==13){
account(life1,life2,turn-1);
return;
}
if(life1>0){
cout << "你赢了。你的钱数增加200。";
money += 200;
w_win++;
for(int i=1;i<=2;i++){
if(work[i-1]==1){
dework(i);
cout << endl << "您完成了任务:初战告捷,奖励100钱。";
money+=100;
}else if(work[i-1]==3){
if(w_win>=3){
dework(i);
cout << endl << "您完成了任务:战场老手,奖励200钱。";
money+=200;
}
}else if(work[i-1]==4){
if(turn<=4){
dework(i);
cout << endl << "您完成了任务:闪电战,奖励200钱。";
money+=200;
}
}
}
if(!wujin)return;
cout<<endl<<"是否继续战斗?1.是 其余数字.返回大厅"<<endl;
int ctn;
cin>>ctn;
if(ctn==1){
past1=life1;
wujin+=1;
system("cls");
blessing();
game();
}
}else if(life2>0){
if(xiang==0){
cout << "你输了。你的钱数增加20。";
money += 20;
}else{
cout << "你输了。投降不会得到任何战后奖励。";
}
if(!wujin)return;
if(money>=150){
cout<<endl<<"是否消耗150钱继续战斗?1.是 其余数字.返回大厅"<<endl;
int ctn;
cin>>ctn;
if(ctn==1){
money-=150;
past1=100;
wujin+=1;
system("cls");
blessing();
game();
}
}
}else{
cout << "你和对手的血量同时归零,平局。你的钱数增加100。";
for(int i=1;i<=2;i++){
if(work[i-1]==10){
dework(i);
cout << endl << "您完成了任务:别救,保平!奖励英雄<'骑士'>。" << endl;
ucha[6]=1;
}
}
money += 100;
if(!wujin)return;
cout<<endl<<"是否消耗75钱继续战斗?1.是 其余数字.返回大厅"<<endl;
int ctn;
cin>>ctn;
if(ctn==1){
money-=75;
past1=100;
wujin+=1;
system("cls");
blessing();
game();
}
}
}
void work_(){
system("cls");
cout << "————————————————————————" << endl;
cout << "| 任务 列表 |" << endl;
cout << "————————————————————————" << endl;
for(int i=1;i<=2;i++){
cout << "任务" << i << ":" << endl;
switch(work[i-1]){
case 1:cout << "初战告捷:赢得匹配模式胜利1次。" << endl << "奖励:100钱" << endl;break;
case 2:cout << "回光返照:使用血瓶1次。" << endl << "奖励:100钱" << endl;break;
case 3:cout << "战场老手:累计赢得匹配模式胜利3次。" << endl << "奖励:200钱" << endl;break;
case 4:cout << "闪电战:在5轮内赢得匹配模式胜利1次。" << endl << "奖励:200钱" << endl;break;
case 5:cout << "运动狂人:使用张斌老师使用1次技能-跑一圈" << endl << "奖励:道具<血瓶>*4" << endl;break;
case 6:cout << "核爆大佬:使用大黄造成1次60点以上的伤害。" << endl << "奖励:道具<炸弹>*2" << endl;break;
case 7:cout << "顶级行贿:使用黄金矿工造成1次60点以上的伤害。" << endl << "奖励:300钱" << endl;break;
case 8:cout << "青云疾现切:使用星辰在1回合内使用4次技能-切!" << endl << "奖励:英雄<张天境>" << endl;break;
case 9:cout << "白昼爆炎破:使用张天境使用1次技能-绝技:徒手开火造成一次45点以上的伤害" << endl << "奖励:道具<炸弹>*2" << endl;break;
case 10:cout << "别救,保平!:达成1次匹配模式平局" << endl << "奖励:英雄<'骑士'>" << endl;break;
case 11:cout << "克敌机先:使用'骑士'使'相持'与'共鸣'都达到最高等级" << endl << "奖励:嘻嘻" << endl;break;
default:cout << "无新任务" << endl;break;
}
}
cout << "输入任意数字退出任务列表。" << endl;
int vo;
cin >> vo;
system("cls");
living();
}
void living(){
wujin=0,past1=0,lifeup=0,choice[5],atk=0;
for(int i=0;i<=14;i++){
upbls[i]=0;
}
cout << "————————————————————————" << endl;
cout << "| 大厅 |" << endl;
cout << "————————————————————————" << endl;
cout << "输入:1.匹配 2.商城 3.任务 4.拾叁深廊 5.首领演练" << endl;
int cho=0;
do{
int o;
cin >> o;
switch(o){
case 1:cho=1;break;
case 2:cho=2;break;
case 3:cho=3;break;
case 4:cho=4;break;
case 5:cho=5;break;
default:cout << "输入错了,你要输入1~5之间的整数。再输入一次。"<< endl;break;
}
}while(cho!=1&&cho!=2&&cho!=3&&cho!=4&&cho!=5);
system("cls");
if(cho==2){
//商城
cout << "————————————————————————" << endl;
cout << "| 商城 |" << endl;
cout << "————————————————————————" << endl;
cout << "你的钱数:" << money << "。" << endl;
cout << "请输入要购买的商品的编号。" << endl;
cout << "1.英雄<黄金矿工>(价格:500)2.英雄<星辰>(价格:1000) 3. 英雄<杨凡>(价格:1000)4.道具<血瓶>(价格:30) 5.道具<炸弹>(价格:80) 6.道具<银河大乐透>(价格:100) 7.道具<星际大乐透>(价格:100) 8.退出商城"<< endl;
cho=0;
do{
int o;
cin >> o;
switch(o){
case 1:cho=1;break;
case 2:cho=2;break;
case 3:cho=3;break;
case 4:cho=4;break;
case 5:cho=5;break;
case 6:cho=6;break;
case 7:cho=7;break;
case 8:cho=8;break;
default:cout << "输入错了,再输入一次。"<< endl;break;
}
}while(cho==0||cho>8);
system("cls");
if(cho==1){
if(ucha[2]==0){
if(money>=500){
cout << "购买成功" << endl;
ucha[2]=1;
money-=500;
}else{
cout << "你的钱数不够500,买不起 英雄<黄金矿工>。" << endl;
}
}else{
cout << "这件商品你已经买过了。" << endl;
}
living();
}else if(cho==2){
if(ucha[3]==0){
if(money>=1000){
cout << "购买成功" << endl;
ucha[3]=1;
money-=1000;
}else{
cout << "你的钱数不够1000,买不起 英雄<星辰>。" << endl;
}
}else{
cout << "这件商品你已经买过了。" << endl;
}
living();
}else if(cho==3){
if(ucha[5]==0){
if(money>=1000){
cout << "购买成功" << endl;
ucha[5]=1;
money-=1000;
}else{
cout << "你的钱数不够1000,买不起 英雄<杨凡>。" << endl;
}
}else{
cout << "这件商品你已经买过了。" << endl;
}
living();
}else if(cho==4){
cout<<"请输入购买数"<<endl;
int num;
cin>>num;
if(money>=30*num){
cout << "购买成功" << endl;
lifebottle+=num;
money-=30*num;
}else{
cout << "你的钱数不够"<<30*num<<",买不起 道具<血瓶>*"<<num<<"。" << endl;
}
living();
}else if(cho==5){
cout<<"请输入购买数"<<endl;
int num;
cin>>num;
if(money>=80*num){
cout << "购买成功" << endl;
TNT+=num;
money-=80*num;
}else{
cout << "你的钱数不够"<<80*num<<",买不起 道具<炸弹>*"<<num<<"。" << endl;
}
living();
}else if(cho==6){
cout<<"请输入购买数"<<endl;
int num;
cin>>num;
if(money>=100*num){
cout << "购买成功" << endl;
yinhe+=num;
money-=100*num;
}else{
cout << "你的钱数不够"<<100*num<<",买不起 道具<银河大乐透>*"<<num<<"。" << endl;
}
living();
}else if(cho==7){
if(money>=50){
int letou2=0;
srand(time(NULL));
letou2=rand()%121;
cout << "购买成功 星际大乐透中刮出了--"<<letou2<<"钱!"<<endl;
money-=50;
money+=letou2;
}else{
cout << "你的钱数不够50,买不起 道具<星际大乐透>*1。" << endl;
}
living();
}else{
living();
}
}else if(cho==3){
//任务
work_();
}else if(cho==4){
wujin=1;
atk=10;
}else if(cho==5){
bscho=1;
}else{
//匹配
}
}
int main(){
living();
int back=1;
while(back!=0){
game();
cout << endl << "是否退出整个游戏?(是:0/否:其他)" << endl;
cin >> back;
if(back==0){
cout << "已退出。" << endl;
}else{
system("cls");
living();
}
}
return 0;
}
全部评论 1
nb,大佬
1周前 来自 浙江
2可以去看看原作者awa 我只是闲着无聊加了点东西(
1周前 来自 上海
0
有帮助,赞一个