pvz竞技场1.0发布!

· · 个人记录

#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;
/* 我只用红和蓝就行了,这段代码来自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(20); 
    }
    printf("\n");
    Sleep(100);
}
void ssay(string a){//无回车的输出! 
    int l=a.size();
    for(int i=0;i<l;i++){
        cout<<a[i];
        Sleep(20); 
    }
}
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);
                } 
            } 
        }
    }
}
void 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<=+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();
            gongji(gj,sodo[z],2,zt1[bh][25]);
        }
        else{
            say("没人呢你打谁?");
        }
    }
    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<=+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();
            gongji(gj,sodo[z],1,zt2[bh][25]);
        }
        else{
            say("没人啊你打谁?"); 
        }
    }
} 
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("位选手的坐标!");
    cin>>y>>x;
    if(dt[x][y][1]!=0){
        say("这里已经满员了!"); 
        shuruhongrenyuan(i); 
    }
    if(x<1||x>kuan||y<1||y>chang){
        say("向往自由的心……");
        shuruhongrenyuan(i); 
    }

    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]=1;//攻速 
        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("位选手的坐标!");
    cin>>y>>x;
    if(dt[x][y][1]!=0){
        say("这里已经满员了!"); 
        shurulanrenyuan(i); 
    }
    if(x<1||x>kuan||y<1||y>chang){
        say("向往自由的心……");
        shurulanrenyuan(i); 
    }

    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]=1;//攻速 
        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();
            zt2[bh][2*x+27]=toulan(zt2[bh][2*x+27]); 
        }
    }
}
void jn1(int bh,int zy){
    if(zy==1){
        int zl=zt1[bh][1];
        if(zl==1){
            zt1[bh][17]-=2;
            suodi(bh,zy);
            gongjibeidong(bh,zy);
            suodi(bh,zy);
            gongjibeidong(bh,zy);
            zt1[bh][17]+=2;
        }
    }
    if(zy==2){
        int zl=zt2[bh][1];
        if(zl==1){
            zt2[bh][17]-=2;
            suodi(bh,zy);
            gongjibeidong(bh,zy);
            suodi(bh,zy);
            gongjibeidong(bh,zy);
            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;
            suodi(bh,zy);
            gongjibeidong(bh,zy);
            zt1[bh][17]-=2;
        }
    }
    if(zy==2){
        int zl=zt2[bh][1];
        if(zl==1){
            zt2[bh][17]+=2;
            suodi(bh,zy);
            gongjibeidong(bh,zy);
            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;//叠词,恶心! 
    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){
        suodi(bh,zy);
        gongjibeidong(bh,zy); 
    }
    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);
}
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;
    say("输入地图的宽,需回车");
    cin>>kuan;
    chushihua();
    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);
                }

            }
            shuchuyiqie();
            if(zt2[i][2]!=0){
                if(zt2[i][12]>0){
                    say("对不起啊你被晕了,休息会哈!");
                    zt2[i][12]-=1;
                    zt2[i][26]=0;
                }
                else{
                    xingdong(i,2);
                }

            }
            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("被动:每造成一次伤害,减少一次自己的技能冷却");
    say("技能一:攻击两次,每次伤害1点,射程同普通攻击,无冷却");
    say("技能二:造成5点伤害,冷却6回合");
    say("技能三:立刻移动两格,冷却8回合");
    say("技能四:攻击+2,持续3回合,冷却10回合");
    say("自我描述:十年热血写信仰,荣耀永不散场!");
    Sleep(1000); 
}
void tujian(){
    system("cls");
    say("因某些原因,无法退出图鉴,看完请重开");
    say("按1:豌豆射手");
    x=read();
    if(x!=0){
        if(x==1) wandousheshou();
        tujian();
    }
}
void caidan(){
    system("cls");
    say("1:开始游戏");
    say("2:游戏相关");
    say("3:游戏图鉴");
    x=read();
    if(x==1) kaishi();
    if(x==2) xiangguan();
    if(x==3) tujian();
    else{
        caidan();
    }
}
int main(){
    caidan();
}