存档点:pvz竞技场1.1发布!
konorszda
·
·
个人记录
#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
using namespace std;
int dt[50][50][3];
//血量 种类 阵营
int zt1[100][100],zt2[100][100],zb1[100][3],zb2[100][3];
//以下是对zt1、zt2的解释,第一格是第n个人 目前比较懒,只做了两个阵营
//1种类 2当前生命 3基础攻击 4基础射程 5连击数 6护甲值 7护甲剩余时间 8伤害减免 9伤害减免剩余时间
//10无敌剩余时间 11霸体剩余时间 12眩晕剩余时间 13速度+ 14速度+的剩余时间 15速度* 16速度*的剩余时间
//17 攻击+ 18攻击+的剩余时间 19攻击* 20 攻击*的剩余时间 21射程+ 22射程+的剩余时间 23射程* 24射程*的剩余时间
//25必中的剩余时间,26是否蓄力 27中毒 28中毒剩余时间
//29技能1冷却 30技能1冷却上限 以此类推
int chang,kuan,renshu,x,y,z,zhandou,v=10,zcsh,sfxl;
/* 我只用红和蓝就行了,这段代码来自c++小游戏后室,侵删
void ys(int a) { //更改单个字
if (a == 0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);
if (a == 2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
if (a == 3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);
if (a == 4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
if (a == 5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
if (a >= 6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
}
*/
//更改单个字
void ys(int a) { if (a == 0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);if (a == 1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);if (a == 2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);}
void say(string a){int l=a.size();for(int i=0;i<l;i++){cout<<a[i];Sleep(2*v); }printf("\n");Sleep(20*v);}
//无回车的输出!
void ssay(string a){ int l=a.size();for(int i=0;i<l;i++){ cout<<a[i]; Sleep(2*v); }}
int read(){char ch=_getch();while(ch>'9'||ch<'0') ch=_getch();return ch-48;}
string zhongleishibie(int i,int j){
int a=dt[i][j][1];
if(a==1) return "豌";
return "空";
}
void naisi(int shanghai,int zy,int bh){
if(zy==1){
if(zt1[bh][2]<=shanghai){ys(1);say("寄!");int x=zb1[bh][1],y=zb1[bh][1];dt[x][y][0]=0;dt[x][y][1]=0;dt[x][y][2]=0;zt1[bh][2]=0;}
else{ssay("真是可惜他没有死,他还剩");cout<<zt1[bh][2]-shanghai;say("点血量");zt1[bh][2]-=shanghai;int x=zb1[bh][1],y=zb1[bh][1];dt[x][y][0]= zt1[bh][2];}
}
if(zy==2){
if(zt2[bh][2]<=shanghai){ys(2);say("寄!");int x=zb2[bh][1],y=zb2[bh][1];dt[x][y][0]=0;dt[x][y][1]=0;dt[x][y][2]=0;zt2[bh][2]=0;}
else{ssay("真是可惜他没有死,他还剩");cout<<zt2[bh][2]-shanghai;say("点血量");zt2[bh][2]-=shanghai;int x=zb2[bh][1],y=zb2[bh][1];dt[x][y][0]= zt2[bh][2];}
}
Sleep(200);
}
void gongji(int gj,int bh,int zy,int bz){
if(zy==1){
int wd=zt1[bh][10];int sj=zt1[bh][8];int hj=zt1[bh][6];
if(wd>0){say("木大!");}
else{
if(bz>1){ssay("受到了");cout<<gj;say("点伤害");naisi(gj-sj,1,bh);}
if(hj>0){
if(hj>gj){zt1[bh][6]-=gj;say("未能击穿敌方装甲");}
else if(gj==hj){say("刚刚好,碎!");zt1[bh][6]=0;zt1[bh][7]=0;}
else{say("护甲:这是我最后的波纹了!");zt1[bh][6]=0;zt1[bh][7]=0;}
}
else{
if(sj>0){if(sj>=gj) say("木大木大!");else{ssay("一共");cout<<gj;ssay("点伤害,格挡掉");cout<<sj;say("点");naisi(gj-sj,1,bh);}}
else{ssay("受到了");cout<<gj;say("点伤害");naisi(gj-sj,1,bh);}
}
}
}
if(zy==2){
int wd=zt2[bh][10];int sj=zt2[bh][8];int hj=zt2[bh][6];
if(wd>0){say("木大!");}
else{
if(bz>1){ssay("受到了");cout<<gj;say("点伤害");naisi(gj-sj,1,bh);}
if(hj>0){
if(hj>gj){zt2[bh][6]-=gj;say("未能击穿敌方装甲");}
else if(gj==hj){say("刚刚好,碎!");zt2[bh][6]=0;zt2[bh][7]=0;}
else{say("护甲:这是我最后的波纹了!");zt2[bh][6]=0;zt2[bh][7]=0;}
}
else{
if(sj>0){if(sj>=gj) say("木大木大!");else{ssay("一共");cout<<gj;ssay("点伤害,格挡掉");cout<<sj;say("点");naisi(gj-sj,2,bh);}}
else{ssay("受到了");cout<<gj;say("点伤害");naisi(gj-sj,2,bh);}
}
}
}
}
int suodi(int bianhao,int zhenying){
if(zhenying==1){
int cnt=0,sodo[100],bh=bianhao;x=zb1[bh][1];y=zb1[bh][2];
int sc=zt1[bh][4];
int gj=(zt1[bh][3]+zt1[bh][17])*zt1[bh][19];
int ymy=0;
for(int i=1;i<=renshu;i++){
int xx=zb2[bh][1],yy=zb2[bh][2];
if(x-sc<=xx&&xx<=x+sc&&y-sc<=yy&&yy<=y+sc){
cnt++;
sodo[cnt]=i;
ymy=1;
}
}
ys(1);
if(ymy==1){
for(int i=1;i<=cnt;i++){
int zhonglei=zt2[sodo[i]][1];
ssay("按");
cout<<i;
ssay("攻击");
if(zhonglei==1){
ssay("豌豆射手(");
}
ssay("生命:");
cout<<zt2[sodo[i]][2] ;
ssay(" 坐标:");
cout<<zb2[sodo[i]][1]<<" "<<zb2[sodo[i]][2];
say(")");
}
z=read();
while(z>cnt||z<1){
say("输的不对啦,请重输!");
z=read();
}
gongji(gj,sodo[z],2,zt1[bh][25]);
return sodo[z];
}
else{say("没人呢你打谁?");}
return 0;
}
if(zhenying==2){
int cnt=0,sodo[100],bh=bianhao;
x=zb2[bh][1];
y=zb2[bh][2];
int sc=zt2[bh][4];
int gj=(zt2[bh][3]+zt2[bh][17])*zt2[bh][19];
int ymy=0;
for(int i=1;i<=renshu;i++){
int xx=zb1[bh][1],yy=zb1[bh][2];
if(x-sc<=xx&&xx<=x+sc&&y-sc<=yy&&yy<=y+sc){
cnt++;
sodo[cnt]=i;
ymy=1;
}
}
ys(2);
if(ymy==1){
for(int i=1;i<=cnt;i++){
int zhonglei=zt1[sodo[i]][1];
ssay("按");
cout<<i;
ssay("攻击");
if(zhonglei==1){
ssay("豌豆射手(");
}
ssay("生命:");
cout<<zt1[sodo[i]][2] ;
ssay(" 坐标:");
cout<<zb1[sodo[i]][1]<<" "<<zb1[sodo[i]][2];
say(")");
}
z=read();
while(z>cnt||z<1){
say("输的不对啦,请重输!");
z=read();
}
gongji(gj,sodo[z],1,zt2[bh][25]);
return sodo[z];
}
else{say("没人啊你打谁?"); }
return 0;
}
}
int zhuangqiang(int yidong,int bianhao,int zhenying){
int x,y,x1,y1;
if(zhenying==1){
x=zb1[bianhao][1];
y=zb1[bianhao][2];
}
else{
x=zb2[bianhao][1];
y=zb2[bianhao][2];
}
if(yidong==1) x--;
if(yidong==2) y--;
if(yidong==3) x++;
if(yidong==4) y++;
if(1>x||x>chang||1>y||y>kuan){
say("强大!他在和墙比硬度!");
say("可惜他失败了,他受到了5点伤害!");
naisi(5,zhenying,bianhao);
return 0;
}
return 1;
}
int zhuangren(int yidong,int bianhao,int zhenying){
int x,y,x1,y1;
if(zhenying==1){x=zb1[bianhao][1];y=zb1[bianhao][2];}
else{x=zb2[bianhao][1];y=zb2[bianhao][2];}
if(yidong==1) x--;if(yidong==2) y--;if(yidong==3) x++;if(yidong==4) y++;
if(dt[x][y][1]!=0){say("喂喂喂,别挤啊!");return 0;}
return 1;
}
void huanyanse(int i,int j){
if(dt[i][j][2]==0) ys(0);//白
if(dt[i][j][2]==1) ys(1);//红
if(dt[i][j][2]==2) ys(2);//蓝
}
void shuchuyiqie(){//fanzhede
system("cls");cout<<" ";ys(0);
for(int i=1;i<=chang;i++){if(i<=9) cout<<i<<" ";else cout<<i;}
cout<<endl;int k=1;
for(int i=1;i<=kuan;i++){ys(0);if(k>=10){cout<<k;}else(cout<<k<<" ");k++;for(int j=1;j<=chang;j++){huanyanse(i,j);string a=zhongleishibie(i,j);cout<<a;}cout<<endl;}
ys(0);
}
void chushihua(){for(int i=1;i<=chang;i++){for(int j=1;j<=kuan;j++){dt[i][j][0]=0;dt[i][j][1]=0;dt[i][j][2]=0;}}zhandou=1;}
void shuruhongrenyuan(int i){//增强、削弱角色请到这里来!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ssay("现在请输入红方第");
cout<<i;
say("位选手的坐标!");
int xh=1;
while(xh){
cin>>y>>x;
xh=0;
if(dt[x][y][1]!=0){
say("这里已经满员了!请重输!");
xh=1;
}
if(x<1||x>kuan||y<1||y>chang){
say("向往自由的心……请重输!");
xh=1;
}
}
say("然后,输入他的类别!");
say("ps:1为豌豆射手");
cin>>z;
if(z==1){
dt[x][y][0]=30;
dt[x][y][1]=1;
dt[x][y][2]=1;
zb1[i][1]=x;
zb1[i][2]=y;
zt1[i][1]=1;//种类
zt1[i][2]=30;//生命
zt1[i][3]=3;//攻击
zt1[i][4]=4;//射程
zt1[i][5]=0;//当前连击数
zt1[i][6]=0;//护甲值
zt1[i][7]=0;//护甲剩余时间
zt1[i][8]=0;//伤害减免
zt1[i][9]=0;//伤害减免剩余时间
zt1[i][10]=0;//无敌剩余时间
zt1[i][11]=0;//霸体剩余时间
zt1[i][12]=0;//眩晕
zt1[i][13]=0;//速度+
zt1[i][14]=0;//速度+的剩余时间
zt1[i][15]=1;//速度*
zt1[i][16]=0;//速度*的剩余时间
zt1[i][17]=0;//攻击+
zt1[i][18]=0;//攻击+的剩余时间
zt1[i][19]=1;//攻击*
zt1[i][20]=0;//攻击*的剩余时间
zt1[i][21]=0;//射程+
zt1[i][22]=0;//射程+的剩余时间
zt1[i][23]=1;//射程*
zt1[i][24]=0;//射程*的剩余时间
zt1[i][25]=0;//必中的剩余时间
zt1[i][26]=0;//是否蓄力
zt1[i][27]=0;//中毒伤害
zt1[i][28]=0;//中毒剩余时间
zt1[i][29]=0;//技能1的当前剩余时间
zt1[i][30]=0;//技能1的最多时间
zt1[i][31]=0;//技能2的当前剩余时间
zt1[i][32]=6;//技能2的最多时间
zt1[i][33]=0;//技能3的当前剩余时间
zt1[i][34]=8;//技能3的最多时间
zt1[i][35]=0;//技能4的当前剩余时间
zt1[i][36]=10; //技能4的最多时间
}
}
void shurulanrenyuan(int i){
ssay("现在请输入蓝方第");
cout<<i;
say("位选手的坐标!");
int xh=1;
while(xh){
cin>>y>>x;
xh=0;
if(dt[x][y][1]!=0){
say("这里已经满员了!请重输");
xh=1;
}
if(x<1||x>kuan||y<1||y>chang){
say("向往自由的心……请重输");
xh=1;
}
}
say("然后,输入他的类别!");
say("ps:1为豌豆射手");
cin>>z;
if(z==1){
dt[x][y][0]=30;
dt[x][y][1]=1;
dt[x][y][2]=2;
zb2[i][1]=x;
zb2[i][2]=y;
zt2[i][1]=1;//种类
zt2[i][2]=30;//生命
zt2[i][3]=3;//攻击
zt2[i][4]=4;//射程
zt2[i][5]=0;//连击数
zt2[i][6]=0;//护甲值
zt2[i][7]=0;//护甲剩余时间
zt2[i][8]=0;//伤害减免
zt2[i][9]=0;//伤害减免剩余时间
zt2[i][10]=0;//无敌剩余时间
zt2[i][11]=0;//霸体剩余时间
zt2[i][12]=0;//眩晕
zt2[i][13]=0;//速度+
zt2[i][14]=0;//速度+的剩余时间
zt2[i][15]=1;//速度*
zt2[i][16]=0;//速度*的剩余时间
zt2[i][17]=0;//攻击+
zt2[i][18]=0;//攻击+的剩余时间
zt2[i][19]=1;//攻击*
zt2[i][20]=0;//攻击*的剩余时间
zt2[i][21]=0;//射程+
zt2[i][22]=0;//射程+的剩余时间
zt2[i][23]=1;//射程*
zt2[i][24]=0;//射程*的剩余时间
zt2[i][25]=0;//必中的剩余时间
zt2[i][26]=0;//是否蓄力
zt2[i][27]=0;//中毒伤害
zt2[i][28]=0;//中毒剩余时间
zt2[i][29]=0;//技能1的当前剩余时间
zt2[i][30]=0;//技能1的最多时间
zt2[i][31]=0;//技能2的当前剩余时间
zt2[i][32]=6;//技能2的最多时间
zt2[i][33]=0;//技能3的当前剩余时间
zt2[i][34]=8;//技能3的最多时间
zt2[i][35]=0;//技能4的当前剩余时间
zt2[i][36]=10; //技能4的最多时间
}
}
void beipoyidong(int fx,int bh,int zy){//没写速度加!!
if(zy==1){
int jg=zhuangqiang(fx,bh,zy);
int jg2=zhuangren(fx,bh,zy);
if(jg*jg2){
int x1=x,y1=y;
if(fx==1) x--;
if(fx==2) y--;
if(fx==3) x++;
if(fx==4) y++;
dt[x][y][0]=dt[x1][y1][0];
dt[x][y][1]=dt[x1][y1][1];
dt[x][y][2]=dt[x1][y1][2];
dt[x1][y1][0]=0;
dt[x1][y1][1]=0;
dt[x1][y1][2]=0;
zb1[bh][1]=x;
zb1[bh][2]=y;
}
}
if(zy==2){
int jg=zhuangqiang(fx,bh,zy);
int jg2=zhuangren(fx,bh,zy);
if(jg*jg2){
int x1=x,y1=y;
if(fx==1) x--;
if(fx==2) y--;
if(fx==3) x++;
if(fx==4) y++;
dt[x][y][0]=dt[x1][y1][0];
dt[x][y][1]=dt[x1][y1][1];
dt[x][y][2]=dt[x1][y1][2];
dt[x1][y1][0]=0;
dt[x1][y1][1]=0;
dt[x1][y1][2]=0;
zb2[bh][1]=x;
zb2[bh][2]=y;
}
}
}
void yidong(int bh,int zy){//没写速度加!!
if(zy==1){
x=zb1[bh][1];y=zb1[bh][2];
int x1=x;int y1=y;
say("用1234移动,1=w,2=a,3=s,4=d");
z=read();
int jg=zhuangqiang(z,bh,zy);int jg2=zhuangren(z,bh,zy);
if(jg*jg2){
if(z==1) x--;if(z==2) y--;if(z==3) x++;if(z==4) y++;
dt[x][y][0]=dt[x1][y1][0];
dt[x][y][1]=dt[x1][y1][1];
dt[x][y][2]=dt[x1][y1][2];
dt[x1][y1][0]=0;
dt[x1][y1][1]=0;
dt[x1][y1][2]=0;
zb1[bh][1]=x;
zb1[bh][2]=y;
}
}
if(zy==2){
x=zb2[bh][1];
y=zb2[bh][2];
int x1=x;
int y1=y;
say("用1234移动,1=w,2=a,3=s,4=d");
z=read();
int jg=zhuangqiang(z,bh,zy);
int jg2=zhuangren(z,bh,zy);
if(jg*jg2){
if(z==1) x--;
if(z==2) y--;
if(z==3) x++;
if(z==4) y++;
dt[x][y][0]=dt[x1][y1][0];
dt[x][y][1]=dt[x1][y1][1];
dt[x][y][2]=dt[x1][y1][2];
dt[x1][y1][0]=0;
dt[x1][y1][1]=0;
dt[x1][y1][2]=0;
zb2[bh][1]=x;
zb2[bh][2]=y;
}
}
}
int toulan(int a){
if(a>=1) return a-1;
else return 0;
}
void gongjibeidong(int bh , int zy){
if(zy==1){
int zl=zt1[bh][1];
if(zl==1){say("输入1-4,在自己的4个技能中选一个减少1回合冷却");x=read();ssay("技能");cout<<x;say("的冷却减少啦!");zt1[bh][2*x+27]=toulan(zt1[bh][2*x+27]); }
}
if(zy==2){
int zl=zt2[bh][1];
if(zl==1){say("输入1-4,在自己的4个技能中选一个减少1回合冷却");x=read();ssay("技能");cout<<x;say("的冷却减少啦!");zt2[bh][2*x+27]=toulan(zt2[bh][2*x+27]); }
}
}
void lianji(int bh,int zy){
ys(zy);
ssay("连击段数:");
if(zy==1){
cout<<zt1[bh][5]<<endl;
}
if(zy==2){
cout<<zt2[bh][5]<<endl;
}
}
void jn1(int bh,int zy){
if(zy==1){
int zl=zt1[bh][1];
if(zl==1){
zt1[bh][17]-=2;
if(suodi(bh,zy)){
gongjibeidong(bh,zy);
zt1[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
if(suodi(bh,zy)){
gongjibeidong(bh,zy);
zt1[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
zt1[bh][17]+=2;
}
}
if(zy==2){
int zl=zt2[bh][1];
if(zl==1){
zt2[bh][17]-=2;
if(suodi(bh,zy)){
gongjibeidong(bh,zy);
zt2[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
if(suodi(bh,zy)){
gongjibeidong(bh,zy);
zt2[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
zt2[bh][17]+=2;
}
}
}
void jn2(int bh,int zy){
if(zy==1){
int zl=zt1[bh][1];
if(zl==1){
zt1[bh][17]+=2;
int a=suodi(bh,zy);
if(a){
gongjibeidong(bh,zy);
zt2[x][12]+=1;
zt1[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
zt1[bh][17]-=2;
}
}
if(zy==2){
int zl=zt2[bh][1];
if(zl==1){
zt2[bh][17]+=2;
int a=suodi(bh,zy);
if(a){
gongjibeidong(bh,zy);
zt1[bh][12]+=1;
zt2[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
zt2[bh][17]-=2;
}
}
}
void jn3(int bh,int zy){
if(zy==1){
int zl=zt1[bh][1];
if(zl==1){
yidong(bh,zy);
yidong(bh,zy);
say("这,就是速a!");
}
}
if(zy==2){
int zl=zt2[bh][1];
if(zl==1){
yidong(bh,zy);
yidong(bh,zy);
say("这,就是速a!");
}
}
}
void jn4(int bh,int zy){
if(zy==1){
int zl=zt1[bh][1];
if(zl==1){
zt1[bh][17]+=2;
zt1[bh][18]+=4;
say("烈火,熊熊燃烧!");
}
}
if(zy==2){
int zl=zt2[bh][1];
if(zl==1){
zt2[bh][17]+=2;
zt2[bh][18]+=4;
say("烈火,熊熊燃烧!");
}
}
}
void zhuangtaishuchu(int bh,int zy){
//7护甲剩余时间 9伤害减免剩余时间 10无敌11霸体
//14速度+ 16速度* 18攻击+ 20攻击*22射程+ 24射程* 25必中 28中毒剩余
if(zy==1){
int hjz=zt1[bh][6],hjt=zt1[bh][7],sjz=zt1[bh][8],sjt=zt1[bh][9],wd=zt1[bh][10],bt=zt1[bh][11],sdj=zt1[bh][13],sdjt=zt1[bh][14],sdc=zt1[bh][16],sdct=zt1[bh][16];
int gjj=zt1[bh][17],gjjt=zt1[bh][18],gjc=zt1[bh][19],gjct=zt1[bh][20],scj=zt1[bh][21],scjt=zt1[bh][22],scc=zt1[bh][23],scct=zt1[bh][24],bz=zt1[bh][25],zd=zt1[bh][27],zdt=zt1[bh][28];
int pd=0;
if(hjt>=1){
if(pd==0) say("当前状态:");
ssay("护甲值:");
cout<<hjz<<" ";
ssay("剩余:");
cout<<hjt<<"回合"<<endl;
}
if(sjt>=1){
if(pd==0) say("当前状态:");
ssay("伤害减免:");
cout<<sjz<<" ";
ssay("剩余:");
cout<<sjt<<"回合"<<endl;
}
if(wd>=1){
if(pd==0) say("当前状态:");
ssay("无敌 ");
ssay("剩余:");
cout<<wd<<"回合"<<endl;
}
if(bt>=1){
if(pd==0) say("当前状态:");
ssay("霸体 ");
ssay("剩余:");
cout<<bt<<"回合"<<endl;
}
if(sdjt>=1){
if(pd==0) say("当前状态:");
ssay("速度提升:");
cout<<sdj<<" ";
ssay("剩余:");
cout<<sdjt<<"回合"<<endl;
}
if(sdct>=1){
if(pd==0) say("当前状态:");
ssay("速度倍率:");
cout<<sdc<<" ";
ssay("剩余:");
cout<<sdjt<<"回合"<<endl;
}
if(gjjt>=1){
if(pd==0) say("当前状态:");
ssay("攻击增加:");
cout<<gjj<<" ";
ssay("剩余:");
cout<<gjjt<<"回合"<<endl;
}
if(gjct>=1){
if(pd==0) say("当前状态:");
ssay("攻击倍率:");
cout<<gjc<<" ";
ssay("剩余:");
cout<<gjct<<"回合"<<endl;
}
if(scjt>=1){
if(pd==0) say("当前状态:");
ssay("射程增加:");
cout<<scj<<" ";
ssay("剩余:");
cout<<scjt<<"回合"<<endl;
}
if(scct>=1){
if(pd==0) say("当前状态:");
ssay("射程翻倍:");
cout<<scc<<" ";
ssay("剩余:");
cout<<scct<<"回合"<<endl;
}
if(bz>=1){
if(pd==0) say("当前状态:");
ssay("必中!");
ssay("剩余:");
cout<<bz<<"回合"<<endl;
}
if(zdt>=1){
if(pd==0) say("当前状态:");
ssay("中毒");
naisi(zd,zy,bh);
ssay("剩余");
cout<<zdt<<"回合"<<endl;
}
}
if(zy==2){
int hjz=zt2[bh][6],hjt=zt2[bh][7],sjz=zt2[bh][8],sjt=zt2[bh][9],wd=zt2[bh][10],bt=zt2[bh][11],sdj=zt2[bh][13],sdjt=zt2[bh][14],sdc=zt1[bh][16],sdct=zt1[bh][16];
int gjj=zt2[bh][17],gjjt=zt2[bh][18],gjc=zt2[bh][19],gjct=zt2[bh][20],scj=zt2[bh][21],scjt=zt2[bh][22],scc=zt2[bh][23],scct=zt2[bh][24],bz=zt2[bh][25],zd=zt2[bh][27],zdt=zt2[bh][28];
int pd=0;
if(hjt>=1){
if(pd==0) say("当前状态:");
ssay("护甲值:");
cout<<hjz<<" ";
ssay("剩余:");
cout<<hjt<<"回合"<<endl;
}
if(sjt>=1){
if(pd==0) say("当前状态:");
ssay("伤害减免:");
cout<<sjz<<" ";
ssay("剩余:");
cout<<sjt<<"回合"<<endl;
}
if(wd>=1){
if(pd==0) say("当前状态:");
ssay("无敌 ");
ssay("剩余:");
cout<<wd<<"回合"<<endl;
}
if(bt>=1){
if(pd==0) say("当前状态:");
ssay("霸体 ");
ssay("剩余:");
cout<<bt<<"回合"<<endl;
}
if(sdjt>=1){
if(pd==0) say("当前状态:");
ssay("速度提升:");
cout<<sdj<<" ";
ssay("剩余:");
cout<<sdjt<<"回合"<<endl;
}
if(sdct>=1){
if(pd==0) say("当前状态:");
ssay("速度倍率:");
cout<<sdc<<" ";
ssay("剩余:");
cout<<sdjt<<"回合"<<endl;
}
if(gjjt>1){
if(pd==0) say("当前状态:");
ssay("攻击增加:");
cout<<gjj<<" ";
ssay("剩余:");
cout<<gjjt<<"回合"<<endl;
}
if(gjct>=1){
if(pd==0) say("当前状态:");
ssay("攻击倍率:");
cout<<gjc<<" ";
ssay("剩余:");
cout<<gjct<<"回合"<<endl;
}
if(scjt>=1){
if(pd==0) say("当前状态:");
ssay("射程增加:");
cout<<scj<<" ";
ssay("剩余:");
cout<<scjt<<"回合"<<endl;
}
if(scct>=1){
if(pd==0) say("当前状态:");
ssay("射程翻倍:");
cout<<scc<<" ";
ssay("剩余:");
cout<<scct<<"回合"<<endl;
}
if(bz>=1){
if(pd==0) say("当前状态:");
ssay("必中!");
ssay("剩余:");
cout<<bz<<"回合"<<endl;
}
if(zdt>=1){
if(pd==0) say("当前状态:");
ssay("中毒");
naisi(zd,zy,bh);
ssay("剩余");
cout<<zdt<<"回合"<<endl;
}
}
}
void zhuangtaijian(int bh,int zy){
//7护甲剩余时间 9伤害减免剩余时间 10无敌11霸体
//14速度+ 16速度* 18攻击+ 20攻击*22射程+ 24射程* 25必中 28中毒剩余
if(zy==1){
zt1[bh][7]=toulan(zt1[bh][7]);
if(zt1[bh][7]==0) zt1[bh][6]=0;
zt1[bh][9]=toulan(zt1[bh][9]);
if(zt1[bh][9]==0) zt1[bh][8]=0;
zt1[bh][10]=toulan(zt1[bh][10]);
zt1[bh][11]=toulan(zt1[bh][11]);
zt1[bh][12]=toulan(zt1[bh][12]);
zt1[bh][14]=toulan(zt1[bh][14]);
if(zt1[bh][14]==0) zt1[bh][13]=0;
zt1[bh][16]=toulan(zt1[bh][16]);
if(zt1[bh][16]==0) zt1[bh][15]=1;
zt1[bh][18]=toulan(zt1[bh][18]);
if(zt1[bh][18]==0) zt1[bh][17]=0;
zt1[bh][20]=toulan(zt1[bh][20]);
if(zt1[bh][20]==0) zt1[bh][19]=1;
zt1[bh][22]=toulan(zt1[bh][22]);
if(zt1[bh][22]==0) zt1[bh][21]=0;
zt1[bh][24]=toulan(zt1[bh][24]);
if(zt1[bh][24]==0) zt1[bh][23]=1;
zt1[bh][25]=toulan(zt1[bh][25]);
zt1[bh][28]=toulan(zt1[bh][28]);
if(zt1[bh][27]==0) zt1[bh][27]=0;
}
if(zy==2){
zt2[bh][7]=toulan(zt2[bh][7]);
if(zt2[bh][7]==0) zt2[bh][6]=0;
zt2[bh][9]=toulan(zt2[bh][9]);
if(zt2[bh][9]==0) zt2[bh][8]=0;
zt2[bh][10]=toulan(zt2[bh][10]);
zt2[bh][11]=toulan(zt2[bh][11]);
zt2[bh][12]=toulan(zt2[bh][12]);
zt2[bh][14]=toulan(zt2[bh][14]);
if(zt2[bh][14]==0) zt2[bh][13]=0;
zt2[bh][16]=toulan(zt2[bh][16]);
if(zt2[bh][16]==0) zt2[bh][15]=1;
zt2[bh][18]=toulan(zt2[bh][18]);
if(zt2[bh][18]==0) zt2[bh][17]=0;
zt2[bh][20]=toulan(zt2[bh][20]);
if(zt2[bh][20]==0) zt2[bh][19]=1;
zt2[bh][22]=toulan(zt2[bh][22]);
if(zt2[bh][22]==0) zt2[bh][21]=0;
zt2[bh][24]=toulan(zt2[bh][24]);
if(zt2[bh][24]==0) zt2[bh][23]=1;
zt2[bh][25]=toulan(zt2[bh][25]);
zt2[bh][28]=toulan(zt2[bh][28]);
if(zt2[bh][27]==0) zt2[bh][27]=0;
}
}
void jilengjian(int bh,int zy){
if(zy==1){
zt1[bh][29]=toulan(zt1[bh][29]);
zt1[bh][31]=toulan(zt1[bh][31]);
zt1[bh][33]=toulan(zt1[bh][33]);
zt1[bh][35]=toulan(zt1[bh][35]);
}
if(zy==2){
zt2[bh][29]=toulan(zt2[bh][29]);
zt2[bh][31]=toulan(zt2[bh][31]);
zt2[bh][33]=toulan(zt2[bh][33]);
zt2[bh][35]=toulan(zt2[bh][35]);
}
}
void xingdong(int bianhao,int zhenying){
int lqsx1,lqsx2,lqsx3,lqsx4;
int bh=bianhao,zy=zhenying,lq,jn11=0,jn22=0,jn33=0,jn44=0;//叠词,恶心!
zcsh=0;
sfxl=0;
ys(zy);
int x,y,xl;
if(zy==1){
x=zb1[bh][1];
y=zb1[bh][2];
xl=dt[x][y][0];
ssay("您当前的坐标为: ");
cout<<y<<" "<<x<<endl;
ssay("您当前的血量为:");
cout<<xl<<endl;
}
if(zy==2){
x=zb2[bh][1];
y=zb2[bh][2];
xl=dt[x][y][0];
ssay("您当前的坐标为: ");
cout<<y<<" "<<x<<endl;
ssay("您当前的血量为:");
cout<<xl<<endl;
}
zhuangtaishuchu(bh,zy);
jilengjian(bh,zy);
say("按1移动");
say("按2攻击");
ssay("按3释放技能1");
if(zy==1){lq=zt1[bh][29];}if(zy==2){lq=zt2[bh][29];}
if(lq==0){say("(准备完毕!)");jn11=1;}
else{ssay(" 但是打咩!冷却还有");cout<<lq;say("回合");}
ssay("按4释放技能2");
if(zy==1){lq=zt1[bh][31];}if(zy==2){lq=zt2[bh][31];}
if(lq==0) {say("(准备完毕!)");jn22=1;}
else{ssay(" 但是打咩!冷却还有");cout<<lq;say("回合");}
ssay("按5释放技能3");
if(zy==1){lq=zt1[bh][33];}if(zy==2){lq=zt2[bh][33];}
if(lq==0){say("(准备完毕!)");jn33=1;}
else {ssay(" 但是打咩!冷却还有");cout<<lq;say("回合");}
ssay("按6释放技能4");
if(zy==1){lq=zt1[bh][35];}if(zy==2){lq=zt2[bh][35];}
if(lq==0){say("(准备完毕!)");jn44=1;}
else {ssay(" 但是打咩!冷却还有");cout<<lq;say("回合");}
x=read();
/*
int ydj,ydc;
if(zy==1){
int ydj=zt1[bh][13];
int ydc=zt1[bh][15];
}
else{
int ydj=zt2[bh][13];
int ydc=zt2[bh][15];
}
总有一天我会回来的!!!!!!!!1
*/
if(x==1){
yidong(bh,zy);
}
if(x==2){
if(suodi(bh,zy)){
gongjibeidong(bh,zy);
if(zy==1){
zt1[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
if(zy==2){
zt2[bh][5]+=1;
lianji(bh,zy);
zcsh=1;
}
}
}
if(x==3){
if(jn11==1){
jn1(bh,zy);
if(zy==1){
zt1[bh][29]=zt1[bh][30];
}
else{
zt2[bh][29]=zt2[bh][30];
}
}
else{
say("都说了打咩了,不要那么执着");
xingdong(bh,zy);
}
}
if(x==4){
if(jn22==1){
jn2(bh,zy);
if(zy==1){
zt1[bh][31]=zt1[bh][32];
}
else{
zt2[bh][31]=zt2[bh][32];
}
}
else{
say("都说了打咩了,不要那么执着");
xingdong(bh,zy);
}
}
if(x==5){
if(jn33==1){
jn3(bh,zy);
if(zy==1){
zt1[bh][33]=zt1[bh][34];
}
else{
zt2[bh][33]=zt2[bh][34];
}
}
else{
say("都说了打咩了,不要那么执着");
xingdong(bh,zy);
}
}
if(x==6){
if(jn44==1){
jn4(bh,zy);
if(zy==1){
zt1[bh][35]=zt1[bh][36];
}
else{
zt2[bh][35]=zt2[bh][36];
}
}
else{
say("都说了打咩了,不要那么执着");
xingdong(bh,zy);
}
}
zhuangtaijian(bh,zy);
if(sfxl==0){
if(zy==1){
zt1[bh][26]=0;
}
if(zy==2){
zt2[bh][26]=0;
}
}
if(zcsh==0){
if(zy==1){
if(zt1[bh][26]==0){
zt1[bh][5]=0;
}
}
if(zy==2){
if(zt2[bh][26]==0){
zt2[bh][5]=0;
}
}
}
}
int panduan(){
int hong=0,lan=0;
for(int i=1;i<=renshu;i++){
if(zt1[i][2]>0) hong=1;
if(zt2[i][2]>0) lan=1;
}
if(hong==1&&lan==0){
ys(1);
say("游戏结束,红方获胜");
return 0;
}
if(hong==0&&lan==1){
ys(2);
say("游戏结束,蓝方获胜");
return 0;
}
if(hong==0&&lan==0){
ys(0);
say("游戏结束,同归于尽");
return 0;
}
return 1;
}
void kaishi(){
system("cls");ys(0);
say("输入地图的长,需回车");cin>>chang;
while(chang>=50||chang<=0){if(chang>=50){say("溢出了!谁闲得蛋疼开这么大地图啊!");}if(chang<=0){say("这能行?");}cin>>chang;}
say("输入地图的宽,需回车");cin>>kuan;
while(kuan>=50||kuan<=0){if(kuan>=50){say("溢出了!谁闲得蛋疼开这么大地图啊!");}if(kuan<=0){say("这能行?");}cin>>kuan;}
chushihua();
say("输入一边的人数,需回车");cin>>renshu;
while(renshu*2>chang*kuan||renshu>=100){say("人太多了!重输!");cin>>renshu;}
for(int i=1;i<=renshu;i++){
shuchuyiqie();
ys(1);
shuruhongrenyuan(i);
}
for(int i=1;i<=renshu;i++){
shuchuyiqie();
ys(2);
shurulanrenyuan(i);
}
ys(0);
say("三,二,一,开始战斗!");
shuchuyiqie();
while(zhandou){
for(int i=1;i<=renshu;i++){
if(zt1[i][2]!=0){
if(zt1[i][12]>0){
say("对不起啊你被晕了,休息会哈!");
zt1[i][12]-=1;
zt1[i][26]=0;
}
else{
xingdong(i,1);
}
Sleep(200);
}
shuchuyiqie();
if(zt2[i][2]!=0){
if(zt2[i][12]>0){
say("对不起啊你被晕了,休息会哈!");
zt2[i][12]-=1;
zt2[i][26]=0;
}
else{
xingdong(i,2);
}
Sleep(200);
}
shuchuyiqie();
zhandou=panduan();
}
}
}
void xiangguan(){
system("cls");
say("游戏环境:pvp竞技场");
say("制作者:konorszda");
say("mod:pvz");
say("制作者:konorszda");
Sleep(1000);
}
void wandousheshou(){
system("cls");
say("豌豆射手");
say("生命值30点 攻击力3点 射程4格");
say("被动:每造成1次伤害,减少1次自己的技能冷却");
say("技能一:攻击2次,每次伤害1点,射程同普通攻击,无冷却");
say("技能二:造成5点伤害,并眩晕敌人1回合,射程同普通攻击,冷却6回合");
say("技能三:立刻移动2格,冷却8回合");
say("技能四:攻击+2,持续3回合,冷却10回合");
say("自我描述:十年热血写信仰,荣耀永不散场!");
Sleep(1000);
}
void tujian(){
system("cls");
say("按1:豌豆射手");
x=read();
if(x!=0){
if(x==1) wandousheshou();
tujian();
}
}
int main(){
for(;;){
system("cls");
say("1:开始游戏");
say("2:游戏相关");
say("3:游戏图鉴");
say("4:速度设置");
x=read();
if(x==1) kaishi();
if(x==2) xiangguan();
if(x==3) tujian();
if(x==4){
system("cls");
ssay("输入一个数,速度越小输出越快,当前速度为:");
cout<<v<<endl;
cin>>v;
say("更改完毕!");
}
}
}