![img](https://img-mid.csdnimg.cn/release/static/im
#include<windows.h>
#include<ctime>
#include<bits/stdc++.h>
using namespace std;
int ID[10][4],n,name,m;
bool flag=true;
void xianshi(int n,int i){
if(i<=n){
cout<<ID[i][1]<<"号玩家 血量:"<<ID[i][2]<<" 防御:"<<ID[i][3]<<endl;
i++;
xianshi(n,i);
}
}
void xuan(char a){
for(int j=1;j<=n;j++){
cout<<endl<<j<<"号玩家,请问你要攻击还是增加防御"<<endl<<"请输入:A.攻击 B.增加防御";
cin>>a;
srand(time(0));
m=rand()%30+20;
if(a=='A'){
cout<<j<<"号玩家,请问你要攻击谁";
cin>>name;
for(int j=1;j<=n;j++){
if(name!=ID[j][1]) flag=false;
else{
flag=true;
break;
}
}
if(flag==false){
cout<<"输入错误,请重新输入"<<endl;
xuan(a);
}
if(ID[name][3]<m){
m-=ID[name][3];
ID[name][3]=0;
if(ID[name][2]<m){
cout<<name<<"号玩家淘汰"<<endl;
for(int k=1;k<=3;k++){
if(name==n){
n--;
break;
}else{
swap(ID[name][k],ID[name+1][k]);
}
}
}else{
ID[name][2]-=m;
}
}else{
ID[name][3]-=m;
}
cout<<name<<"号玩目前防御:"<<ID[name][3]<<endl;
cout<<name<<"号玩目前血量:"<<ID[name][2]<<endl;
}else{
ID[j][3]+=m;
cout<<j<<"号玩目前防御:"<<ID[j][3]<<endl;
}
}
}
int main(){
char a;
cout<<"请输入一共有几名玩家:"<<endl;
cin>>n;
if(n<=2){
cout<<"输入错误,再见";
return 0;
}
system("cls");
for(int i=1;i<=n;i++){
ID[i][1]=i;
ID[i][2]=100;
ID[i][3]=100;
}
while(n-1){
xianshi(n,1);
xuan(a);
system("cls");
xianshi(n,1);
Sleep(1100);
}
cout<<ID[1][1]<<"号玩家胜利"<<endl;
return 0;
}
大家,以上是我的程序,不知道为什么执行第二次后会输出两次
这是执行出来第二次的结果: