存档点:pvz竞技场1.1发布!

· · 个人记录

#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("更改完毕!"); 
        }
    }
}