pvz竞技场1.0发布!
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;
/* 我只用红和蓝就行了,这段代码来自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();
}