社区讨论
c++游戏
灌水区参与者 6已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 11 条
- 当前快照
- 1 份
- 快照标识符
- @lzpncw7k
- 此快照首次捕获于
- 2024/08/11 22:15 2 年前
- 此快照最后确认于
- 2024/08/12 08:43 2 年前
作者不更我先帮他更(1的小版本是我更的)
名字竞技场promaxplus++版
CPP#include<bits/stdc++.h>
#include<windows.h>
#define int long long
#define homo 114514
#define sf scanf
#define pf printf
#define cs c_str()
using namespace std;
struct phb{
int id,val;
}Rank[homo];
struct firerecord{
int time,who;
}hashfire[100000];
bool infire[100000];
vector<int> liv;
int n,cnt,win,speed=440,tmss,gt;
int kill[100000],zmyj[100000],ele[100000],lv[100000],Exp[100000],lvneed[100000],skill[100000][4];
double fy[100000],sh[100000],bjpro[100000],dodgepro[100000], pjl[100000],hp[100000],hpmax[100000], bjshbl[100000], huif[100000];
bool die[100000];
string s[100000],team[100000];
map<string,int> tms;
double huan(int x,double y){
return 1.0-1.0/(1.0+x/y);
}
int ran(int l, int r){
return (((1ll*rand()/2ll)<<48ll)+((1ll*rand())<<32ll)+(1ll*rand()<<16ll)+rand())%(r-l+1ll)+l;
}
double fyjs (double x, double tfy) {
double tt = tfy - x / 10000.0;
if(tt<0)tt=0;
double js = x / (1 + tt / 500.0);
return x - js;
}
void addExp(int who,int add){
pf(" *%s* 获得%lld点经验\n",s[who].cs,add);
Exp[who]+=add;
if(lvneed[lv[who]+1]>Exp[who])return;
double tsh=sh[who],thp=hp[who],thpmax=hpmax[who],tfy=fy[who],tbjshbl=bjshbl[who],thuif=huif[who],tpjl=pjl[who],tbjpro=bjpro[who],tdodgepro=dodgepro[who];
while(lvneed[lv[who]+1]<=Exp[who]){
lv[who]++;
sh[who]*=1.02;
fy[who]*=1.02;
hpmax[who]*=1.02;
hp[who]+=hpmax[who]/33;
if(hp[who]>hpmax[who])hp[who]=hpmax[who];
bjpro[who]*=1.02;
dodgepro[who]*=1.02;
bjshbl[who]*=1.02;
pjl[who]*=1.02;
huif[who]*=1.02;
}
pf(" *%s*升到**%lld**级!属性变化:\n",s[who].cs,lv[who]);
pf("攻击力 %16.1lf ---> %.1lf\n",tsh,sh[who]);
pf("防御力 %8.1lf|%6.3lf%% ---> %.1lf|%.3lf%%\n",tfy,huan(tfy,500)*100,fy[who],huan(fy[who],500)*100);
pf("血量 %16.1lf ---> %.1lf\n",thp,hp[who]);
pf("血量上限 %16.1lf ---> %.1lf\n",thpmax,hpmax[who]);
pf("暴击率 %8.1lf|%6.3lf%% ---> %.1lf|%.3lf%%\n",tbjpro,huan(tbjpro,20)*100,bjpro[who],huan(bjpro[who],20)*100);
pf("暴击伤害 %15.3lf%% ---> %.3lf%%\n",tbjshbl*100,bjshbl[who]*100);
pf("恢复力 %16.1lf ---> %.1lf\n",thuif,huif[who]);
pf("闪避率 %8.1lf|%6.3lf%% ---> %.1lf|%.3lf%%\n",tdodgepro,huan(tdodgepro,100)*100,dodgepro[who],huan(dodgepro[who],100)*100);
pf("破甲率 %8.1lf|%6.3lf%% ---> %.1lf|%.3lf%%\n",tpjl,huan(tpjl,500)*100,pjl[who],huan(pjl[who],500)*100);
Sleep(speed);
}
void duel(int x,int y);
void huixue(int x){
double zl=huif[x];
if(ele[x]==5){
int ss=ran(1,2);
if(ss==1){
pf(" *%s* 触发 [土元素] 被动【土凝聚】50%%概率治疗增加50%%\n",s[x].cs);
zl*=1.5;
}
}
hp[x] += zl;
if(hp[x]>hpmax[x])hp[x]=hpmax[x];
printf (" *%s* 恢复了 %.1lf 点血,现在还有 %.1lf 点血\n", s[x].cs, zl, hp[x]);
}
bool dodge(int x){
int r=ran(1,10000);
if(r<=huan(dodgepro[x],10)*10000) return 1;
return 0;
}
int bj(double x,int u,int v){
int isbj=ran(1,100000000);
int pd=huan(bjpro[u],20)*100000000/lv[u]*lv[v];
if(isbj>pd) return x;
else{
int r=100+ran (1ll, ran (80, ran (110, ran (150, ran (150, ran (250, ran (270, ran (275, ran (275, ran (275, ran (300, ran(300,ran(300,1000000)))))))))))));;
double add=((double)r)/(double)100;
if(add<0)add=0;
double res=x*add*bjshbl[u];
pf(" *%s* 对 *%s* 产生了 [暴击] ,暴击倍率为 %.2lf 倍\n",s[u].cs,s[v].cs,add);
return res;
}
}
bool cmp(phb x,phb y){
return x.val>y.val;
}
void isdie(int x,int y){
bool flag=0;
if(hp[y]<=0){
flag=1;
cnt--;
tms[team[y]]--;
if(tms[team[y]]==0){
tms.erase(team[y]);
tmss--;
}
auto it=find(liv.begin(), liv.end(), y);
if(it!=liv.end())liv.erase(it);
zmyj[y]=x;
die[y]=1;
kill[x]++;
}
if(flag) pf(" *%s* 击杀 *%s* ,目前他已击杀%lld人\n",s[x].cs,s[y].cs,kill[x]),addExp(x,1000+Exp[y]/2);
}
void shanghai(int u,int v,int x){
double zssh=ran(x-x/10,x+x/10),dd,tsh;
tsh=zssh=bj((double)zssh,u,v);
dd=fyjs((double)zssh,fy[v]*huan(pjl[u],500));
zssh-=dd;
if(dodge(v)){
pf(" *%s* 对 *%s* 造成了%.1lf点伤害,但是这次伤害被 [闪避] 了\n",s[u].cs,s[v].cs,zssh);
addExp(v,zssh);
return ;
}
hp[v]-=zssh;
if(hp[v]<0)hp[v]=0;
pf(" *%s* 对 *%s* 造成了%.1lf点伤害,被抵挡%.1lf点伤害,实际造成%.1lf点伤害, *%s* 还剩%.1lf点血\n",s[u].cs,s[v].cs,tsh,dd,zssh,s[v].cs,hp[v]);
addExp(u,sh[u]+dd/5);
isdie(u,v);
}
void huoshang(int u,int v,int x){
double zssh=x;
double dd=fyjs((double)zssh,fy[v]*0.5);
zssh-=dd;
if(ele[x]==2){
pf(" *%s* 受到火焰燃烧伤害,属性克制伤害增加50%%\n",s[v].cs);
zssh*=1.5;
}
if(ele[x]==4){
pf(" *%s* 受到火焰燃烧伤害,属性克制伤害增加100%%\n",s[v].cs);
zssh*=2;
}
hp[v]-=zssh;
if(hp[v]<0)hp[v]=0;
pf(" *%s* 受到%.1lf点火焰燃烧伤害,还剩%.1lf点血\n",s[v].cs,zssh,hp[v]);
addExp(u,zssh+dd/5);
isdie(u,v);
}
void dianshang(int u,int v,int x){
double zssh=x;
hp[v]-=zssh;
if(hp[v]<0)hp[v]=0;
pf(" *%s* 受到%.1lf点闪电攻击伤害,还剩%.1lf点血\n",s[v].cs,zssh,hp[v]);
addExp(u,zssh);
isdie(u,v);
}
void fashang(int u,int v,int x){
double zssh=x;
double dd=fyjs((double)zssh,fy[v]*0.575);
hp[v]-=zssh;
if(hp[v]<0)hp[v]=0;
pf(" *%s* 受到%.1lf点法术伤害,还剩%.1lf点血\n",s[v].cs,zssh,hp[v]);
addExp(u,zssh);
isdie(u,v);
}
void fire(int x,int y){
if(gt-skill[x][0]<10)return;
skill[x][0]=gt;
if(hashfire[y].time==0) infire[y]=1;
hashfire[y].time=5,hashfire[y].who=x;
pf(" *%s* 发动 [火元素] 大招【烈火焚天】,对 *%s* 造成持续五轮的为自身攻击力40%%的火焰伤害\n" ,s[x].cs,s[y].cs);
}
void fireskill1(int x,int y){
if(gt-skill[x][1]<7)return;
skill[x][1]=gt;
pf(" *%s* 发动 [火元素] 一技能【火球术】,对 *%s* 造成自身攻击力100%%的火焰伤害\n" ,s[x].cs,s[y].cs);
huoshang(x,y,sh[x]);
}
void fireskill2(int x,int y){
if(gt-skill[x][2]<8)return;
skill[x][2]=gt;
pf(" *%s* 发动 [火元素] 二技能【火焰巨石】,对 *%s* 造成自身攻击力50%%的火焰伤害和75%%物理伤害\n" ,s[x].cs,s[y].cs);
huoshang(x,y,sh[x]*0.5);
shanghai(x,y,sh[x]*0.75);
}
void ice(int x,int y){
if(gt-skill[x][0]<10)return;
skill[x][0]=gt;
pf(" *%s* 发动 [冰元素] 大招【万里冰封】,冰冻对手使得自己行动三次\n",s[x].cs);
duel(x,y);
duel(x,y);
}
void iceskill1(int x,int y){
if(gt-skill[x][1]<6||hp[x]/hpmax[x]>0.8)return;
skill[x][1]=gt;
pf(" *%s* 发动 [冰元素] 一技能【冰之凝聚】,回复25%%血量\n",s[x].cs);
hp[x]+=hpmax[x]/4.0;
}
void iceskill2(int x,int y){
if(gt-skill[x][2]<4&&hp[x]/hpmax[x]>0.8)return;
skill[x][2]=gt;
pf(" *%s* 发动 [冰元素] 二技能【冰刺】,造成自身攻击力100%%魔法伤害\n",s[x].cs);
fashang(x,y,sh[x]);
}
void lighting(int x,int y){
if(gt-skill[x][0]<15)return;
skill[x][0]=gt;
pf(" *%s* 发动 [雷元素] 大招【吸收雷暴】,对 *%s* 造成自身攻击力200%%的伤害并永久增加5%%攻击力\n" ,s[x].cs,s[y].cs);
shanghai(x,y,sh[x]*2);
sh[x]*=1.05;
}
void lightingskill1(int x,int y){
if(gt-skill[x][1]<7)return;
skill[x][1]=gt;
pf(" *%s* 发动 [雷元素] 一技能【闪电箭】,对 *%s* 造成自身攻击力25%%的电伤和100%%的物理伤害\n" ,s[x].cs,s[y].cs);
dianshang(x,y,sh[x]*0.25);
shanghai(x,y,sh[x]);
}
void lightingskill2(int x,int y){
if(gt-skill[x][2]<8)return;
skill[x][2]=gt;
pf(" *%s* 发动 [雷元素] 二技能【雷电穿刺】,对 *%s* 造成自身攻击力75%%的雷电伤害\n" ,s[x].cs,s[y].cs);
dianshang(x,y,sh[x]*0.75);
}
void wood(int x,int y){
if(gt-skill[x][0]<35||hp[x]/hpmax[x]>0.5)return;
skill[x][0]=gt;
pf(" *%s* 发动 [木元素] 大招【万物复苏】,回满血量\n",s[x].cs);
hp[x]=hpmax[x];
}
void woodskill1(int x,int y){
if(gt-skill[x][1]<8||hp[x]/hpmax[x]>0.8)return;
skill[x][1]=gt;
pf(" *%s* 发动 [木元素] 一技能【自然法则】,回复30%%血量\n",s[x].cs);
hp[x]+=hpmax[x]*0.3;
}
void woodskill2(int x){
if(gt-skill[x][2]<7)return;
skill[x][2]=gt;
pf(" *%s* 发动 [木元素] 二技能【自然进化】,最大生命值增加2%%\n",s[x].cs);
hp[x]+=hpmax[x]*0.02;
hpmax[x]*=1.02;
}
void soil(int x,int y){
if(gt-skill[x][0]<11|hp[x]/hpmax[x]>0.5)return;
skill[x][0]=gt;
pf(" *%s* 发动 [土元素] 大招【地裂拳】,造成自身攻击力150%%的物理伤害\n",s[x].cs);
shanghai(x,y,sh[x]*1.5);
}
void soilskill1(int x,int y){
if(gt-skill[x][1]<6||hp[x]/hpmax[x]>0.8)return;
skill[x][1]=gt;
pf(" *%s* 发动 [土元素] 一技能【岩石飞弹】,造成自身攻击力80%%的物理伤害\n",s[x].cs);
shanghai(x,y,sh[x]*0.8);
}
void soilskill2(int x){
if(gt-skill[x][2]<9)return;
skill[x][2]=gt;
pf(" *%s* 发动 [土元素] 二技能【大地守护】,防御增加2%%\n",s[x].cs);
fy[x]*=1.02;
}
void dragon(int x,int y){
if(gt-skill[x][0]<13)return;
skill[x][0]=gt;
pf(" *%s* 发动 [龙属性] 大招【龙啸九天】,造成自身攻击力250%%的物理伤害\n",s[x].cs);
shanghai(x,y,sh[x]*2.5);
}
void dragonskill1(int x,int y){
if(gt-skill[x][1]<8)return;
skill[x][1]=gt;
pf(" *%s* 发动 [龙属性] 一技能【龙吟法咒】,造成自身攻击力100%%的魔法伤害\n",s[x].cs);
fashang(x,y,sh[x]);
}
void dragonskill2(int x,int y){
if(gt-skill[x][2]<7)return;
skill[x][2]=gt;
pf(" *%s* 发动 [龙属性] 二技能【真龙吐息】,造成自身攻击力75%%的物理伤害和75%%的魔法伤害\n",s[x].cs);
shanghai(x,y,sh[x]*0.75);
fashang(x,y,sh[x]*0.75);
}
void light(int x,int y){
if(gt-skill[x][0]<13)return;
skill[x][0]=gt;
pf(" *%s* 发动 [光属性] 大招【光芒万丈】,造成自身攻击力175%%的魔法伤害\n",s[x].cs);
fashang(x,y,sh[x]*1.75);
}
void lightskill1(int x,int y){
if(gt-skill[x][1]<8)return;
skill[x][1]=gt;
pf(" *%s* 发动 [光属性] 一技能【光辉法咒】,回复20%自身攻击力的血量\n",s[x].cs);
hp[x] += sh[x]*0.2;
if(hp[x]>hpmax[x])hp[x]=hpmax[x];
printf (" *%s* 恢复了 %.1lf 点血,现在还有 %.1lf 点血\n", s[x].cs, sh[x]*0.2, hp[x]);
}
void lightskill2(int x,int y){
if(gt-skill[x][2]<9)return;
skill[x][2]=gt;
pf(" *%s* 发动 [光属性] 二技能【光之闪避】,永久增加1.5%%闪避\n",s[x].cs);
dodgepro[x]*=1.015;
}
void dark(int x,int y){
if(gt-skill[x][0]<11)return;
skill[x][0]=gt;
pf(" *%s* 发动 [暗属性] 大招【黑暗侵蚀】,造成自身血量上限5%%的魔法伤害\n",s[x].cs);
fashang(x,y,hpmax[x]*0.05);
}
void darkskill1(int x,int y){
if(gt-skill[x][1]<8||hp[x]/hpmax[x]<0.825)return;
skill[x][1]=gt;
pf(" *%s* 发动 [暗属性] 一技能【黑暗聚集】,回复20%%的血量\n",s[x].cs);
hp[x] += hpmax[x]*0.2;
if(hp[x]>hpmax[x])hp[x]=hpmax[x];
printf (" *%s* 恢复了 %.1lf 点血,现在还有 %.1lf 点血\n", s[x].cs, sh[x]*0.2, hp[x]);
}
void darkskill2(int x,int y){
if(gt-skill[x][2]<9)return;
skill[x][2]=gt;
pf(" *%s* 发动 [暗属性] 二技能【黑暗领域】,永久增加1%%防御和生命\n",s[x].cs);
fy[x]*=1.01;
hp[x]+=hpmax[x]*0.01;
hpmax[x]*=1.01;
}
void gong(int x,int y){
int fdd=ran(80ll,120ll);
double fd=fdd/100.0;
double zssh=sh[x]*fd;
double dd,tsh;
tsh=zssh=bj((double)zssh,x,y);
dd=fyjs((double)zssh,fy[y]*huan(pjl[x],500));
zssh-=dd;
if(ele[x]==2){
fire(x,y);
fireskill1(x,y);
fireskill2(x,y);
int ss=ran(1,2);
if(ss==1){
pf(" *%s* 触发 [火元素] 被动【火焰附加】50%%概率造成攻击力25%%的火焰伤害\n",s[x].cs);
huoshang(x,y,sh[x]*0.25);
}
}
if(ele[x]==1){
ice(x,y);
iceskill1(x,y);
iceskill2(x,y);
}
if(ele[y]==1){
int ss=ran(1,4);
if(ss==1){
zssh/=2;
dd+=zssh;
pf(" *%s* 触发 [冰元素] 被动【冰之甲】25%%概率减少50%%伤害\n",s[y].cs);
}
}
if(ele[x]==3){
lighting(x,y);
lightingskill1(x,y);
lightingskill2(x,y);
int ss=ran(1,5);
if(ss==1){
zssh/=2;
dd+=zssh;
pf(" *%s* 触发 [雷元素] 被动【雷电狂暴】20%%概率增加80%%伤害\n",s[x].cs);
}
}
if(ele[x]==4){
wood(x,y);
woodskill1(x,y);
woodskill2(x);
}
if(ele[y]==4){
int ss=ran(1,4);
if(ss==1){
pf(" *%s* 触发 [木元素] 被动【木之生长】25%%概率回复一次\n",s[y].cs);
huixue(y);
}
}
if(ele[x]==5){
soil(x,y);
soilskill1(x,y);
soilskill2(x);
}
if(ele[x]==6){
dragon(x,y);
dragonskill1(x,y);
dragonskill2(x,y);
int ss=ran(1,5);
if(ss==1){
pf(" *%s* 触发 [龙元素] 被动【龙之附魔】10%%概率额外造成60%%魔法伤害\n",s[x].cs);
fashang(x,y,sh[x]*0.6);
}
}
if(ele[x]==7){
light(x,y);
lightskill1(x,y);
lightskill2(x,y);
}
if(ele[y]==7){
int ss=ran(1,4);
if(ss==1){
pf(" *%s* 触发 [光元素] 被动【光之盾牌】减少10%伤害\n",s[y].cs);
dd+=zssh/10;
zssh*=0.9;
}
}
if(ele[x]==8){
dark(x,y);
darkskill1(x,y);
darkskill2(x,y);
}
if(ele[y]==8){
int ss=ran(1,5);
if(ss==1){
pf(" *%s* 触发 [暗元素] 被动【暗之谜雾】20%%概率闪避伤害\n",s[y].cs);
pf(" *%s* 对 *%s* 造成了%.1lf点伤害,但是这次伤害被 [闪避] 了\n",s[x].cs,s[y].cs,zssh);
addExp(y,zssh);
return ;
}
}
if(dodge(y)){
pf(" *%s* 对 *%s* 造成了%.1lf点伤害,但是这次伤害被 [闪避] 了\n",s[x].cs,s[y].cs,zssh);
addExp(y,zssh);
return ;
}
hp[y]-=zssh;
if(hp[y]<0)hp[y]=0;
pf(" *%s* 对 *%s* 造成了%.1lf点伤害,被抵挡%.1lf点伤害,实际造成%.1lf点伤害, *%s* 还剩%.1lf点血\n",s[x].cs,s[y].cs,tsh,dd,zssh,s[y].cs,hp[y]);
addExp(x,sh[x]+dd/5);
isdie(x,y);
}
int guanjian(int x,int a,int b,int c,int d){
if(a){
gong(x,a);
return 1;
}
if(b){
gong(x,b);
return 1;
}
if(c){
gong(x,c);
return 1;
}
if(d){
gong(x,d);
return 1;
}
return 0;
}
void duel(int x, int y){
int aaa = ran(1,100000);
if ((aaa > 200000.0*(hp[x]/hpmax[x])&&hp[x]<hpmax[x])) { // 血量越低回复率越高
huixue(x);
return;
}
int hpu=0,hpd=0,lvd=0,mslvu=0,mslvd=0;
for(int i =1;i<=cnt;i++){
if(!die[i]&&team[i]!=team[x]){
double damage=sh[x]*1.5*(1+bjshbl[x])*(1.0-1.0/(1.0 + (bjpro[x] * (lv[x]/lv[i])) / 20.0));
if((damage-fyjs(damage,fy[i]))>=hp[i]){
if(mslvu==0||lv[mslvu]<lv[i]){
mslvu=i;
}
}
if(lvd==0||lv[i]<lv[lvd]){
lvd=i;
}
if(damage>0)
if(hpd==0||hp[i]/(1.0 / (1.0 + fy[i] / 500.0))/(1.0 / (1.0 + dodgepro[i] / 100.0))<hp[hpd]/(1.0 / (1.0 + fy[hpd] / 500.0))/(1.0 / (1.0 + dodgepro[hpd] / 100.0))){
hpd=i;
}
if(hpu==0||hp[i]/(1.0 / (1.0 + fy[i] / 500.0))/(1.0 / (1.0 + dodgepro[i] / 100.0))>hp[hpu]/(1.0 / (1.0 + fy[hpu] / 500.0))/(1.0 / (1.0 + dodgepro[hpu] / 100.0))){
hpu=i;
}
}
}
double damage=sh[x]*1.5*bjshbl[x]*(1.0+1.0-1.0/(1.0 + bjpro[x] / 20.0));
if(hpmax[x]/(1.0 / (1.0 + fy[x] / 500.0))/(1.0 / (1.0 + dodgepro[x] / 100.0))<damage*5){
if(hp[x]/hpmax[x]<0.3){
if(!guanjian(x,mslvd,0,0,0)){
huixue(x);
}
}
else if(hp[x]/hpmax[x]<0.6){
if(guanjian(x,mslvd,lvd,0,0)){
huixue(x);
}
}
else {
int g=ran(0,1);
if(g)guanjian(x,mslvu,lvd,hpu,y);
else guanjian(x,mslvu,y,0,0);
}
}
else{
if(hp[x]/hpmax[x]<0.3&&huif[x]){
huixue(x);
}
else if(hp[x]/hpmax[x]<0.6){
int s=ran(1,100);
if (s>=50&&huif[x])huixue(x);
else if(guanjian(x,mslvd,lvd,0,0)){
if(huif[x])huixue(x);
else gong(x,y);
}
}
else {
int s=ran(1,100);
if (s>=75&&huif[x]&&hp[x]<hpmax[x])huixue(x);
else if(guanjian(x,mslvu,lvd,hpd,0)){
if(huif[x]&&hp[x]<hpmax[x])huixue(x);
else gong(x,y);
}
}
}
}
void fireset(){
for(int it =1;it<=n;it++){
if(die[infire[it]]){
infire[it]=0;
}
else if(infire[it]){
int zssh=sh[hashfire[it].who]*0.4;
int dd=fyjs((double)zssh,fy[it]);
zssh-=dd;
hp[it]-=zssh;
if(hp[it]<0)hp[it]=0;
pf(" *%s* 受到%lld点火焰燃烧伤害,还剩%.0lf点血\n",s[it].cs,zssh,hp[it]);
addExp(hashfire[it].who,zssh+dd/5);
isdie(hashfire[it].who,it);
hashfire[it].time--;
if(hashfire[it].time==0){
infire[it]=0;
}
}
}
}
signed main(){
//system("color B5");
srand(time(0));
for(int i=1;i<=100000;i++){
if(i<=16) lvneed[i]=i*i+6*i;
if(i>=17&&i<=31) lvneed[i]=(double)(2.5*(double)i*(double)i-40.5*(double)i+360);
if(i>=32) lvneed[i]=(double)(4.5*(double)i*(double)i-162.5*(double)i+2220);
lvneed[i]*=100;
}
pf("注:长按M键加速,N键减速\n");
pf("请输入名字个数:");
sf("%lld",&n);
cnt=n;
pf("请输入%lld个名字,以及他们的队伍,血量,防御力,攻击力(不含空格),元素属性,暴击率,暴击伤害,闪避率,破甲率\n0代表无属性,1代表冰属性,2代表火属性:,3代表雷属性,4代表木属性,5代表土属性,6代表龙属性,7代表光属性,8代表暗属性\n",n);
liv.push_back(0);
for(int i=1;i<=n;i++){
cin>>s[i]>>team[i]>>hp[i]>>fy[i]>>sh[i]>>ele[i]>>bjpro[i]>>bjshbl[i]>>huif[i]>>dodgepro[i]>>pjl[i];
hpmax[i]=hp[i];
tms[team[i]]++;
if(tms[team[i]]==1)tmss++;
liv.push_back(i);
lv[i]=1;
}
while(tms.size()>1){
gt++;
int x=liv[ran(1,cnt)],y=liv[ran(1,cnt)];
while(1){
if(team[x]!=team[y])break;
int f1=ran(1,cnt),f2=ran(1,cnt);
x=liv[f1];
y=liv[f2];
}
if((!die[x])&&(!die[y])) duel(x,y);
fireset();
if(GetAsyncKeyState(0x4D)&&speed>=60) speed-=100;
if(GetAsyncKeyState(0x4E)&&speed<=450) speed+=100;
Sleep(speed);
}
pf("胜者: ");
for(int i = 1; i <= n; i++) {
if(!die[i]) {
pf("*%s* ",s[i].cs);
win=i;
}
}
pf (" 队伍: *%s* \n击杀数排名:\n", team[win].cs);
for(int i=1;i<=n;i++) Rank[i].id=i,Rank[i].val=kill[i];
sort(Rank+1,Rank+n+1,cmp);
for(int i=1;i<=n;i++){
pf(" *%s* 排名:%lld 击杀数:%lld 等级:%lld 致命一击:",s[Rank[i].id].cs,i,Rank[i].val,lv[Rank[i].id]);
if(zmyj[Rank[i].id]) pf(" *%s* ",s[zmyj[Rank[i].id]].cs);
else pf("无");
pf("\n");
}
system("pause");
}
/*
8
abc 1 20000 514 800 1 100 10 10 10 26
sb 1 6000 1980 300 2 10 2 10 17 22
wcnm 1 40000 100 800 3 0 0 10 19 23
qn 1 22000 500 800 4 1 1 10 10 12
abc2 2 20000 514 800 5 100 10 10 10 26
sb2 2 6000 1980 300 6 10 2 10 17 22
wcnm2 2 40000 100 800 7 0 0 10 19 23
qn2 2 22000 500 800 5 8 1 10 10 12
*/
回复
共 11 条回复,欢迎继续交流。
正在加载回复...