• Bio

    #include<bits/stdc++.h>
    #include<windows.h>
    #include<unistd.h>
    using namespace std;
    const int maxncard=131,mobct=1,maxcen=3,cenda=17;
    const int maxnrom=5,maxjs=3,ttyw=3;
    const int romrdgl[]={0,23,3,7,5,8};
    int cprd/*抽牌*/,hdkprd/*获得卡片*/,gwrd/*怪物随机*/,fjrd/*房间随机*/,gjrd/*怪物攻击随机*/,
    xlrd/*血量随机*/,gbrd/*金币随机*/,tiprd/*tip随机*/,whrd/*问号随机*/,qfrd/*充能球*/;
    int maxheal=75,nwjs=1,nwspct=50/*现在删牌价格*/;
    const string name[]={"","打击","防御","生存者","中和","刀刃之舞","小刀","切割",
    "偏折","背刺","致盲","恐怖","打击+","防御+","生存者+","中和+","刀刃之舞+",
    "小刀+","切割+","偏折+","背刺+","致盲+","恐怖+","后空翻","后空翻+","肾上腺素",
    "肾上腺素+","杂技","杂技+","致命毒药","致命毒药+","带毒刺击","带毒刺击+",
    "催化剂","催化剂+","早有准备","早有准备+","战术大师","战术大师+","本能反应",
    "本能反应+","冲刺","冲刺+","投掷匕首","投掷匕首+","斗篷与匕首","斗篷与匕首+",
    "突然一拳","突然一拳+","精准","精准+","灵动步法","灵动步法+","幽魂形态",
    "幽魂形态+","余像","余像+","眩晕","伤口","粘液","进阶之灾","连续拳","连续拳+",
    "剑柄打击","剑柄打击+","重整精神","重整精神+","硬撑","硬撑+","壁垒","壁垒+",
    "巩固","巩固+","全身撞击","全身撞击+","痛击","痛击+","祭品","祭品+","燃烧","燃烧+",
    "突破极限","突破极限+","岿然不动","岿然不动+","幽灵铠甲","幽灵铠甲+","顺劈斩",
    "顺劈斩+","旋风斩","旋风斩+","无谋冲锋","无谋冲锋+","双重打击","双重打击+",
    "铁斩波","铁斩波+","金刚臂","金刚臂+","闪电霹雳","闪电霹雳+","C","C++","flick",
    "flick+","双重释放","双重释放+","电击","电击+","冰川","冰川+","冷静头脑","冷静头脑+",
    "扩容","扩容+","裂变","裂变+","愁云惨淡","愁云惨淡+","核心电涌","核心电涌+","碎片整理",
    "碎片整理+","偏差认知","偏差认知+","彩虹","彩虹+","暴雪","暴雪+","电动力学","电动力学+"};
    const int gcst[maxncard]={0,0,0,0,0,99,0,79,39,50,130,129,0,0,0,0,119,0,109,59,99,
    131,150,69,89,145,167,89,109,55,66,25,30,150,165,114,125,93,101,89,93,79,90,
    78,89,88,99,77,87,101,115,96,106,171,192,104,120,0,0,0,0,110,125,73,87,96,102,
    93,101,134,150,131,148,99,109,0,0,150,169,68,78,86,96,99,114,87,100,54,67,56,
    71,59,75,72,87,71,81,60,73,69,71,100,110,0,0,0,0,0,0,100,110,88,99,100,110,89,100,
    78,87,120,130,100,120,99,111,86,100,105,119,99,110};//价格 
    const string namemb[]={"","FULi","篮球","菜","starfish","三柱","三柱","三柱","龟",
    "尊师","九鸟","卫星","战车","球","刀","刀刃之舞","小蓝球","鸠","蛇花","史莱姆","心脏"};
    const int cost[maxncard]={0,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,
    0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,2,2,1,1,1,1,1,1,1,1,1,1,3,3,1,1,0,0,1,0,1,1,
    1,1,1,1,1,1,3,2,2,1,1,0,2,2,0,0,1,1,1,1,2,2,1,1,1,1,-1,-1,0,0,1,1,1,1,2,2,1,
    1,-1,-1,0,0,1,0,1,0,2,2,1,1,1,1,2,1,2,2,1,1,1,1,1,1,2,2,1,1,2,2};//花费 
    const int def[maxncard]={0,0,5,8,0,0,0,0,4,0,0,0,0,8,11,0,0,0,0,6,0,0,0,5,8,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,13,0,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,15,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,40,10,13,0,0,0,0,0,0,0,0,5,7,0,0,
    0,0,0,0,0,0,0,0,0,0,7,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//防御 
    const int atk[maxncard]={0,6,0,0,3,0,4,6,0,11,0,0,9,0,0,4,0,6,9,0,15,0,0,0,0,
    0,0,0,0,0,0,6,9,0,0,0,0,0,0,0,0,10,13,9,12,0,0,7,9,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
    9,10,0,0,0,0,0,0,0,0,0,0,8,10,0,0,0,0,0,0,0,0,0,0,8,11,5,8,7,10,5,7,5,7,12,14,
    4,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,14,11,15,0,0,0,0,0,0,0,0,0,0};//攻击 
    const int needd[maxncard]={0,1,0,0,1,0,1,1,0,1,2,1,1,0,0,1,0,1,1,0,1,2,1,0,0,
    0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
    1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,2,2,2,2,1,1,1,1,1,1,1,1,2,2,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,0,0};//是否需要攻击对象 
    const bool ifdis[maxncard]={0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,0,
    0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,0,1,1,
    0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    1,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,1,1};//是否消耗 
    const bool ifpl[maxncard]={0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,
    0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,
    0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,
    0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1};//是否升级 
    const int gailv[maxncard]={0,0,0,0,0,9,0,9,15,6,3,2,0,0,0,0,1,0,2,5,2,1,1,15,5,
    2,1,8,3,15,5,15,5,3,1,6,2,3,1,3,1,6,2,9,3,5,1,8,2,4,2,4,2,6,2,4,2,0,0,0,0,6,3,
    12,4,4,2,3,1,3,1,2,1,5,2,0,0,1,1,8,4,3,1,1,1,4,2,10,3,8,2,9,4,6,2,10,3,15,4,8,
    2,0,0,0,0,0,0,0,0,4,2,7,3,6,2,6,2,9,3,4,1,5,2,6,3,8,4,4,2,7,3};//抽中概率 
    const int ydpcd[maxncard]={0,12,13,14,15,16,17,18,19,20,21,22,12,13,14,15,16,
    17,18,19,20,21,22,24,24,26,26,28,28,30,30,32,32,34,34,36,36,38,38,40,40,42,
    42,44,44,46,46,48,48,50,50,52,52,54,54,56,56,57,58,59,60,62,62,64,64,66,66,68,
    68,70,70,72,72,74,74,76,76,78,78,80,80,82,82,84,84,86,86,88,88,90,90,92,92,94,
    94,96,96,98,98,100,100,102,102,104,104,106,106,108,108,110,110,112,112,114,114,
    116,116,118,118,120,120,122,122,124,124,126,126,128,128,130,130};//升级后卡牌位置 
    const int nfdc[maxncard]={0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};//能否打出 
    int tcard[maxncard]={0,3,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//初始卡组 
    int zuobicard[maxncard]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,5,0,0,0,1,1,2,0,5,0,
    3,0,1};//1769种子卡牌 
    const int dycc[maxncard]={0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//固有 
    const int xuw[maxncard]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//虚无 
    const int tmsc[maxncard]={0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,
    0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,4,5,
    1,1,0,0,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,-1,-1,1,1,2,2,1,1,1,1,1,
    1,-1,-1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0};//攻击次数 
    const int jsp[maxncard]={0,0,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,1,1,1,
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,2,2,
    2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
    0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3};//角色 
    const int kysc[maxncard]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//可否删除 
    const int paix[maxncard]={0,0,1,1,0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1,1,
    1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,
    0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1,1};//1技能 
    int yiwu[ttyw+1]={0,1,0,0};
    //遗物
    //1,开局抽2张牌
    //2,每局回6点血 
    //3,生成一个电球 
    int uncard[maxncard];
    int uscard[maxncard];
    int hdcard[maxncard];
    int nowpow,mbcnt,nowju=0;
    bool winflag=0;
    bool chocard[maxncard];
    int ccd[maxncard];
    int imputs(){
    	string imputa;
    	cin>>imputa;
    	int imputin=0;
    	bool imputz=0;
    	if(imputa[0]=='-')imputz=1;
    	for(int i=0;i<imputa.length();i++){
    		if(imputa[i]-'0'<=9&&imputa[i]-'0'>=0){
    			imputin*=10;imputin+=imputa[i]-'0';
    		}
    	}
    	if(imputz)return -imputin;
    	return imputin;
    }
    void mbcrth(int,int);
    void clshs();
    void cfbd(int);
    void cfzd(int,int);
    void add(int);
    int Rr(int,int&);
    struct mob{
    	int shld,heal,xur,lik,strg,atk,ys,rgzp,zdu,ncz,bl,
    	strgad,mjead,mje,cur,yhuxt,ntdef,ntgst,ntgmje,ntgpow,
    	yxia,jjun,jinj,zsh,mxheal,cpts,xhhcp,fl,jbkc,jbkcmx,goldb=0, 
    	bal[100],chcs,mxcs,focus,fcsu,elgs,icgs,xhu,bkbl[100],ddlx;
    	//1电 2冰 3黑暗 4等离子 
    	bool sfxr,sfys;
    	void mobdf(){
    		if(bl==0)shld=0;
    		else shld=max(shld,0);
    		strg+=strgad;
    		mje+=mjead;
    		if(yhuxt>0)yhuxt--;
    		shld+=ntdef;ntdef=0;
    		strg+=ntgst;ntgst=0;
    		mje+=ntgmje;ntgmje=0;
    		nowpow+=ntgpow;ntgpow=0;
    		heal+=zsh;zsh--;zsh=max(zsh,0);
    		heal=min(heal,mxheal);
    		sfxr=0;sfys=0;
    		xhhcp=cpts;
    		if(fl>0&&heal<=mxheal/2&&heal>0){
    			mbcrth(lik,heal);mbcrth(lik,heal);
    			heal=0;
    		}
    		jbkc=jbkcmx;
    		focus+=fcsu;
    		chcs=min(chcs,mxcs);
    		if(lik==0&&bal[1]!=0){
    			for(int i=1;i<=xhu;i++){
    				cfbd(1);
    			}
    		}
    	} 
    	void zuatcal(){
    		if(xur>0)xur--;
    		if(ys>0)ys--;
    		if(cur>0)cur--;
    		if(zdu>0){
    			heal-=zdu;
    			zdu--;
    		}
    	}
    	void mobshuo(int dirmob,int likkk){
    		if(likkk!=0)cout<<namemb[likkk];
    		if(dirmob==0){
    			printf("充能球:(末端)");
    			for(int i=chcs;i>=1;i--){
    				switch(bal[i]){
    					case 1:printf("电球(%d) ",3+focus);break;
    					case 2:printf("冰球(%d) ",2+focus);break;
    					case 3:printf("黑球(%d/%d) ",bkbl[i],6+focus);break;
    					case 4:printf("等离子球 ");break;
    					default:printf("空 ");
    				}
    			}
    			printf("(前端)\n");
    		}
    		if(dirmob!=0)printf("%d号\n",dirmob);
    		if(dirmob!=0)printf("血量:%d/%d\n",heal,mxheal);
    		if(shld>0)printf("盾:%d\n",shld);
    		if(ntdef!=0)printf("下回合防御:%d\n",ntdef);
    		if(dirmob!=0)printf("攻击:%d\n",atk);
    		if(mje!=0)printf("敏捷:%d\n",mje);
    		if(mjead!=0)printf("敏捷增加:%d\n",mjead);
    		if(ntgmje!=0)printf("下回合敏捷:%d\n",ntgmje);
    		if(rgzp!=0)printf("人工制品:%d\n",rgzp);
    		if(strg!=0)printf("力量:%d\n",strg);
    		if(ntgst!=0)printf("下回合力量:%d\n",ntgst);
    		if(strgad!=0)printf("力量增加:%d\n",strgad);
    		if(xur!=0)printf("虚弱:%d\n",xur);
    		if(cur!=0)printf("脆弱:%d\n",cur);
    		if(ys!=0)printf("易伤:%d\n",ys);
    		if(zdu!=0)printf("中毒:%d\n",zdu);
    		if(bl!=0)printf("堡垒\n");
    		if(yhuxt!=0)printf("幽魂形态:%d\n",yhuxt);
    		if(yxia!=0)printf("余像:%d\n",yxia);
    		if(jjun!=0)printf("精准:%d\n",jjun);
    		if(jinj!=0)printf("荆棘:%d\n",jinj);
    		if(zsh!=0)printf("再生:%d\n",zsh);
    		if(cpts>0&&dirmob==0)printf("抽牌提升:%d\n",cpts);
    		if(xhhcp>0&&dirmob==0)printf("下回合抽牌:%d\n",xhhcp);
    		if(fl>0&&dirmob!=0)printf("分裂\n");
    		if(jbkcmx>0)printf("坚不可摧:%d\n",jbkc);
    		if(focus!=0)printf("集中:%d\n",focus);
    		if(fcsu!=0)printf("集中上升:%d\n",fcsu);
    		if(ddlx!=0)printf("电动力学\n");
    		if(dirmob!=0)puts("");
    	}
    	void mobinitt(bool ckifm){
    		atk=0;rgzp=0;shld=0;strg=0;xur=0;ys=0;zdu=0;ncz=0;bl=0;
    		strgad=0;mjead=0;mje=0;cur=0;yhuxt=0;ntdef=0;ntgst=0;ntgmje=0;
    		ntgpow=0;yxia=0;jjun=0;jinj=0;zsh=0;mxheal=maxheal;cpts=0;fl=0;
    		focus=0;fcsu=0;elgs=0;icgs=0;xhu=0;mxcs=10;chcs=1;
    		xhhcp=0;jbkcmx=0;jbkc=0;ddlx=0;
    		for(int i=1;i<=99;i++)bal[i]=bkbl[i]=0;
    		if(!ckifm)xhhcp=2*yiwu[1];
    		if(!ckifm)heal+=6*yiwu[2];
    		if(ckifm)goldb=Rr(10,gbrd)+10;
    		if(!ckifm){
    			if(nwjs==3||nwjs>maxjs)chcs=3;
    			for(int i=1;i<=yiwu[3];i++){
    				add(1);
    			}
    		}
    	}
    	void edhh(){
    		for(int i=1;i<=chcs;i++){
    			cfbd(i);
    		}
    	}
    	void jieshao(){
    		clshs();
    		if(nwjs==1||nwjs>maxjs){
    			printf("打击:对目标造成6/9点伤害\n");
    			printf("防御:获得5/8点防御\n");
    			printf("生存者:获得8/11点防御,丢弃一张牌\n");
    			printf("中和:对目标造成3/4点伤害,给予1/2层虚弱\n");
    			printf("刀刃之舞:获得3/4张小刀\n");
    			printf("小刀:消耗,造成4/6点伤害\n");
    			printf("切割:造成6/9点伤害\n");
    			printf("偏折:获得4/6点防御\n");
    			printf("背刺:固有,消耗,造成11/15点伤害\n");
    			printf("恐怖:消耗,给予99层易伤\n");
    			printf("后空翻:获得5/8点防御,抽2张牌\n");
    			printf("肾上腺素:消耗,获得1/2点能量,抽2张牌\n");
    			printf("杂技:抽3/4张牌,扔1张牌\n");
    			printf("致命毒药:给予5/7层中毒\n");
    			printf("带毒刺击:对目标造成6/9点伤害,给予3/4层中毒\n");
    			printf("催化剂:使目标中毒层数翻2/3倍\n");
    			printf("早有准备:抽1/2张牌,扔1/2张牌\n");
    			printf("战术大师:丢弃时获得1/2能量\n");
    			printf("本能反应:丢弃时抽2/3张牌\n");
    			printf("冲刺:获得10/13点防御,造成10/13点伤害\n");
    			printf("投掷匕首:造成9/12点伤害,抽1张牌,扔1张牌\n");
    			printf("斗篷与匕首:获得6点防御,获得1/2把小刀\n");
    			printf("突然一拳:造成7/9点伤害,给予1/2层虚弱\n"); 
    			printf("精准:获得4/6点精准\n");
    			printf("灵动步法:获得2/3点敏捷\n");
    			printf("幽魂形态:获得2/3点幽魂形态,1点敏捷下降\n");
    			printf("余像:(固有),获得一点余像\n");
    		}
    		if(nwjs==2||nwjs>maxjs){
    			printf("连续拳:造成2点伤害4/5次\n");
    			printf("剑柄打击:造成8/11点伤害,抽1张牌\n");
    			printf("重整精神:消耗所有非攻击牌,每张牌获得5/7点防御\n");
    			printf("硬撑:获得15/20点防御,增加两张伤口\n");
    			printf("堡垒:获得堡垒\n");
    			printf("巩固:将你的防御翻倍\n");
    			printf("全身撞击:造成你的防御点伤害\n");
    			printf("痛击:造成8/10点伤害,给予2/3层易伤\n");
    			printf("祭品:失去6点生命,获得2点能量,抽3/5张牌\n");
    			printf("燃烧:消耗,获得2/3点力量\n");
    			printf("突破极限:消耗(不消耗),将力量翻倍\n");
    			printf("岿然不动:获得30/40点防御\n");
    			printf("顺劈斩:对所有敌人造成8/11点伤害\n");
    			printf("旋风斩:对所有人造成5/8点伤害X次\n");
    			printf("无谋冲锋:造成7/10点伤害,获得一张眩晕\n");
    			printf("双重打击:造成5/7点伤害两次\n");
    			printf("铁斩波:造成5/7点伤害,获得5/7点防御\n");
    			printf("金刚臂:造成12/14点伤害,给予2/3层虚弱\n");
    		}
    		printf("致盲:消耗,所有敌人获得2/3层虚弱\n");
    		printf("C:?\n");
    		printf("flick:?\n");
    		Sleep(10000);
    	}
    	int deff(int cddef){
    		int sjd=cddef+mje;
    		if(cur>0)return sjd*80/100;
    		return sjd;
    	}
    }player,mmmob[114514],defmob; 
    void cfbd(int qh){
    	switch(player.bal[qh]){
    		case 1:
    			while(1){
    				if(player.ddlx==0){
    					int sjmb=Rr(mbcnt,qfrd);
    					if(mmmob[sjmb].heal>0){
    						mmmob[sjmb].shld-=max(3+player.focus,0);
    						mmmob[sjmb].heal+=min(0,mmmob[sjmb].shld);
    						mmmob[sjmb].shld=max(0,mmmob[sjmb].shld);
    						break;
    					}
    				}
    				else{
    					for(int i=1;i<=mbcnt;i++){
    						if(mmmob[i].heal>0){
    							mmmob[i].shld-=max(3+player.focus,0);
    							mmmob[i].heal+=min(0,mmmob[i].shld);
    							mmmob[i].shld=max(0,mmmob[i].shld);;
    						}
    					}
    					break;
    				}
    				bool sfyg=0;
    				for(int i=1;i<=mbcnt;i++){
    					if(mmmob[i].heal>0)sfyg=1;
    				}
    				if(!sfyg)break;
    			}
    			break;
    		case 2:player.shld+=max(2+player.focus,0);break;
    		case 3:player.bkbl[qh]+=max(6+player.focus,0);break;
    		case 4:nowpow++;break;
    	}
    }
    void cfzd(int qh,int times){
    	int aktm=0;
    	switch(player.bal[qh]){
    		case 1:
    			while(1){
    				if(player.ddlx==0){
    					int sjmb=Rr(mbcnt,qfrd);
    					if(mmmob[sjmb].heal>0){
    						mmmob[sjmb].shld-=max(8+player.focus,0);
    						mmmob[sjmb].heal+=min(0,mmmob[sjmb].shld);
    						mmmob[sjmb].shld=max(0,mmmob[sjmb].shld);
    						aktm++;
    					}
    				}
    				else{
    					for(int i=1;i<=mbcnt;i++){
    						if(mmmob[i].heal>0){
    							mmmob[i].shld-=max(8+player.focus,0);
    							mmmob[i].heal+=min(0,mmmob[i].shld);
    							mmmob[i].shld=max(0,mmmob[i].shld);
    						}
    					}
    					aktm++;
    				}
    				if(aktm>=times)break;
    				bool sfyg=0;
    				for(int i=1;i<=mbcnt;i++){
    					if(mmmob[i].heal>0)sfyg=1;
    				}
    				if(!sfyg)break;
    			}
    			break;
    		case 2:player.shld+=max(4+player.focus,0)*times;break;
    		case 3:
    		while(1){
    			int sjmb=Rr(mbcnt,qfrd);
    			if(mmmob[sjmb].heal>0){
    				mmmob[sjmb].shld-=player.bkbl[1]*times;
    				mmmob[sjmb].heal+=min(0,mmmob[sjmb].shld);
    				mmmob[sjmb].shld=max(0,mmmob[sjmb].shld);
    				aktm++;
    			}
    			if(aktm>=times)break;
    			bool sfyg=0;
    			for(int i=1;i<=mbcnt;i++){
    				if(mmmob[i].heal>0)sfyg=1;
    			}
    			if(!sfyg)break;
    		}
    		break;
    		case 4:nowpow+=2*times;break;
    	}
    	for(int i=1;i<=player.chcs;i++){
    		player.bal[i]=player.bal[i+1];player.bkbl[i]=player.bkbl[i+1];
    	}
    	player.bkbl[player.chcs]=player.bal[player.chcs]=0;
    }
    void add(int blzl){
    	int yjgq=0;
    	if(blzl==1)player.elgs++;
    	if(blzl==2)player.icgs++;
    	for(int i=1;i<=player.chcs;i++){
    		if(player.bal[i]==0){
    			yjgq=i;break;
    		}
    	}
    	if(yjgq>0){
    		player.bal[yjgq]=blzl;
    		player.bkbl[yjgq]=max(6+player.focus,0);
    	}
    	else{
    		cfzd(1,1);
    		player.bal[player.chcs]=blzl;
    		player.bkbl[player.chcs]=max(6+player.focus,0);
    	}
    }
    void clshs(){
    	for(int i=1;i<=40;i++){
    		printf("\n");
    	}
    	printf("当前层数:%d ",nowju);
    	printf("血量:%d/%d ",player.heal,maxheal);
    	printf("金币:%d ",player.goldb);
    	puts("");
    	int maxtp=22;
    	int nwtp=Rr(maxtp,tiprd);
    	switch(nwtp){
    		case 1:printf("这是一条tip");break;
    		case 2:printf("猜猜有多少有用的tip");break;
    		case 3:printf("rp++");break;
    		case 4:printf("boss之前是火堆");break;
    		case 5:printf("不是什么卡都要拿");break;
    		case 6:printf("chh又在睡觉");break;
    		case 7:printf("每日碎心");break;
    		case 8:printf("为什么chh没禁止玩杀戮尖塔,因为这可以锻炼学生的计算能力");break;
    		case 9:printf("tip;tip;tip;tip;tip;");break;
    		case 10:printf("编这个游戏的人是只鸽子");break;
    		case 11:printf("你的rks多少了");break;
    		case 12:printf("啪啪御,啪啪防,啪啪斩");break;
    		case 13:printf("我要sl");break;
    		case 14:printf("连续拳遇到荆棘");break;
    		case 15:printf("别忘记今天好好享受母庸置疑");break;
    		case 16:printf("你相信光(IN12)吗?");break;
    		case 17:printf("这是第17条tip");break;
    		case 18:printf("有一股力量注入了你,你决定去打歌");break;
    		case 19:printf("小约翰可汗");break;
    		case 20:printf("nor叔,你去哪了");break;
    		case 21:printf("核邪铀碍四人组");break;
    		case 22:printf("杀戮尖塔,启动");break;
    	}
    	puts("");puts("");
    }
    void mobinit(mob&);
    void mbcrt(int likk){
    	mbcnt++;
    	mmmob[mbcnt].lik=likk;
    	mobinit(mmmob[mbcnt]);
    }
    void mbcrth(int likk,int mhal){
    	mbcnt++;
    	mmmob[mbcnt].lik=likk;
    	mobinit(mmmob[mbcnt]);
    	mmmob[mbcnt].mxheal=mmmob[mbcnt].heal=mhal;
    }
    void cdbc(){
    	freopen("slay.txt","w",stdout);
    	printf("%d %d %d %d %d %d ",nowju-1,player.heal,maxheal,nwjs,nwspct,player.goldb);
    	printf("%d %d %d %d %d %d %d %d %d %d ",cprd,hdkprd,gwrd,fjrd,gjrd,xlrd,tiprd,gbrd,whrd,qfrd);
    	for(int i=1;i<maxncard;i++){
    		printf("%d ",tcard[i]);
    	}
    	for(int i=1;i<=ttyw;i++){
    		printf("%d ",yiwu[i]);
    	} 
    	puts("");
    	fclose(stdout);
    	freopen("CON","w",stdout);
    	printf("已存档\n");
    	return;
    }
    void choucard();
    bool checkmh();
    void mobinit(mob&); 
    int Rr(int rdmax,int &nwrd){
    	srand(nwrd);
    	nwrd=rand();
    	return nwrd%rdmax+1;
    }
    void mob1init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=40;
    	xxmob.lik=1;
    }
    int mob1(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;xxmob.zsh=5;xxmob.strg+=2;atk=xxmob.strg+6;break;
    		case 2:xxmob.ncz=1;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob2init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=Rr(3,xlrd)+12;
    	xxmob.lik=2;
    }
    int mob2(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;atk=xxmob.strg+8;break;
    		case 1:xxmob.ncz=2;break;
    		case 2:xxmob.ncz=3;
    			for(int i=1;i<=mbcnt;i++){
    				mmmob[i].strg+=1;
    			}
    			break;
    		case 3:xxmob.ncz=2;
    			for(int i=1;i<=mbcnt;i++){
    				mmmob[i].shld+=xxmob.deff(5);
    			}
    			break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob3init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=33;
    	xxmob.lik=3;
    }
    int mob3(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;
    			for(int i=1;i<=mbcnt;i++){
    				mmmob[i].shld+=xxmob.deff(5);
    			}
    			atk=xxmob.strg+6;
    			break;
    		case 2:xxmob.ncz=3;break;
    		case 3:xxmob.ncz=2;
    			if(player.rgzp==0)player.cur+=2;
    			else player.rgzp--;
    			if(player.rgzp==0)player.ys+=2;
    			else player.rgzp--;
    			atk=xxmob.strg+6;
    		break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob4init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.zsh=5;
    	xxmob.heal=xxmob.mxheal=45;
    	xxmob.lik=4;
    }
    int mob4(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;xxmob.zsh++;atk=xxmob.strg+5;break;
    		case 2:xxmob.ncz=3;break;
    		case 3:xxmob.ncz=2;xxmob.zsh+=2;xxmob.strg++;atk=xxmob.strg+7;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob5init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=26;
    	xxmob.rgzp=1;
    	xxmob.lik=5;
    }
    int mob5(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;uncard[57]++;atk=8+xxmob.strg;break;
    		case 2:xxmob.ncz=1;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob6init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=33;
    	xxmob.lik=6;
    }
    int mob6(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;atk=10+xxmob.strg;break;
    		case 1:xxmob.ncz=2;break;
    		case 2:xxmob.ncz=1;uncard[57]+=2;atk=9+xxmob.strg;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob7init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=29;
    	xxmob.lik=7;xxmob.rgzp=1;
    }
    int mob7(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;uncard[57]++;atk=8+xxmob.strg;break;
    		case 2:xxmob.ncz=1;break;
    	} 
    	xxmob.zuatcal();
    	return atk;
    }
    void mob8init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=20;
    	xxmob.rgzp=1;
    	xxmob.bl=1;
    	xxmob.shld=30;
    	xxmob.lik=8;
    }
    int mob8(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;uncard[57]+=2;atk=10+xxmob.strg;break;
    		case 2:xxmob.ncz=1;atk=(8+xxmob.strg)*2;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob9init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=40;
    	xxmob.rgzp=1;
    	xxmob.lik=9;
    }
    int mob9(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;
    			if(player.rgzp==0)player.ys++;
    			else player.rgzp--;
    			if(player.rgzp==0)player.xur++;
    			else player.rgzp--;
    			if(player.cur==0)player.cur++;
    			else player.rgzp--;
    			break;
    		case 2:xxmob.ncz=3;xxmob.strg+=1;atk=8+xxmob.strg;break;
    		case 3:xxmob.ncz=2;atk=(7+xxmob.strg)*2;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob10init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=65;
    	xxmob.rgzp=1;
    	xxmob.lik=10;
    	xxmob.shld=10;
    }
    int mob10(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;xxmob.strg+=1;atk=xxmob.strg*6;break;
    		case 2:xxmob.ncz=0;atk=xxmob.strg*3;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob11init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=49;
    	xxmob.shld=10;
    	xxmob.lik=11;
    }
    int mob11(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;atk=8+xxmob.strg;break;
    		case 1:xxmob.ncz=2;break;
    		case 2:xxmob.ncz=0;xxmob.strg+=1;atk=(5+xxmob.strg)*2;break;
    	} 
    	xxmob.zuatcal();
    	return atk;
    }
    void mob12init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=40;
    	xxmob.bl=1;
    	xxmob.shld=25;
    	xxmob.rgzp=2;
    	xxmob.lik=12;
    }
    int mob12(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;xxmob.strg+=3;atk=5+xxmob.strg;break;
    		case 1:xxmob.ncz=2;atk=10+xxmob.strg;break;
    		case 2:xxmob.ncz=0;atk=10+xxmob.strg;break;
    	} 
    	xxmob.zuatcal();
    	return atk;
    }
    void mob13init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=71;
    	xxmob.lik=13;
    }
    int mob13(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;
    		if(player.rgzp==0)player.ys++;
    		else player.rgzp--;
    		break;
    		case 1:xxmob.ncz=2;
    		if(player.rgzp==0)player.ys++;
    		else player.rgzp--;
    		atk=(7+xxmob.strg)*2;break;
    		case 2:xxmob.ncz=3;break;
    		case 3:xxmob.ncz=1;mbcrt(2);break;
    		break;
    	} 
    	xxmob.zuatcal();
    	return atk;
    }
    void mob14init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=16;
    	xxmob.jinj=1;
    	xxmob.lik=14;
    }
    int mob14(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;xxmob.jinj++;atk=xxmob.strg+6;break;
    		case 2:xxmob.ncz=2;atk=xxmob.strg+6;break;
    	} 
    	xxmob.zuatcal();
    	return atk;
    }
    void mob15init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=72;
    	xxmob.jinj=3;
    	xxmob.lik=15;
    }
    int mob15(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=1;
    		if(mbcnt<=4)mbcrt(14);
    		else atk=xxmob.strg+12;
    		break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob16init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=10;
    	xxmob.bl=1;xxmob.shld=30;
    	xxmob.lik=16;
    }
    int mob16(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=1;
    		for(int i=1;i<=mbcnt;i++){
    			mmmob[i].strg++;
    			mmmob[i].shld+=xxmob.deff(7);
    		}
    		break;
    	} 
    	xxmob.zuatcal();
    	return atk;
    }
    void mob17init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=49;
    	xxmob.lik=17;
    	xxmob.ncz=Rr(3,gjrd)-1;
    	xxmob.strg=1;
    }
    int mob17(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;xxmob.strg++;break;
    		case 1:xxmob.ncz=2;atk=xxmob.strg*6;break;
    		case 2:xxmob.ncz=0;atk=xxmob.strg*6;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob18init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=100;
    	xxmob.lik=18;
    	xxmob.ncz=Rr(3,gjrd)-1;
    }
    int mob18(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;atk=20+xxmob.strg;break;
    		case 1:xxmob.ncz=2;atk=20+xxmob.strg;break;
    		case 2:xxmob.ncz=0;break;
    	} 
    	xxmob.zuatcal();
    	return atk;
    }
    void mob19init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=120;
    	xxmob.lik=19;xxmob.fl=1;
    }
    int mob19(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;break;
    		case 2:xxmob.ncz=0;uncard[59]+=2;atk=max(8,xxmob.mxheal/4)+xxmob.strg;break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    void mob20init(mob &xxmob){
    	xxmob.mobinitt(1);
    	xxmob.heal=xxmob.mxheal=400;
    	xxmob.lik=20;xxmob.jbkcmx=100;
    }
    int mob20(mob &xxmob){
    	xxmob.mobdf();
    	int atk=0;
    	switch(xxmob.ncz){
    		case 0:xxmob.ncz=1;break;
    		case 1:xxmob.ncz=2;uncard[57]+=2;uncard[58]+=2;uncard[59]+=2;
    			if(player.rgzp==0)player.yxia--;
    			else player.rgzp--;
    			break;
    		case 2:xxmob.ncz=3;xxmob.strg++;atk=xxmob.strg*15;break;
    		case 3:xxmob.ncz=4;atk=player.heal*2/3+xxmob.strg;break;
    		case 4:xxmob.ncz=5;
    			if(player.rgzp==0)player.cur+=2;
    			else player.rgzp--;
    			if(player.rgzp==0)player.xur+=2;
    			else player.rgzp--;
    			if(player.rgzp==0)player.ys+=2;
    			else player.rgzp--;
    			if(player.rgzp==0)player.mje-=1;
    			else player.rgzp--;
    			if(player.rgzp==0)player.strg-=1;
    			else player.rgzp--;
    			if(player.rgzp==0)player.xhhcp-=1;
    			else player.rgzp--;
    			break;
    		case 5:xxmob.ncz=2;
    			if(player.rgzp==0)player.yxia--;
    			else player.rgzp--;
    			break;
    	}
    	xxmob.zuatcal();
    	return atk;
    }
    int mobchs(mob &mobb){
    	switch(mobb.lik){
    		case 1:return mobb.atk=mob1(mobb);
    		case 2:return mobb.atk=mob2(mobb);
    		case 3:return mobb.atk=mob3(mobb);
    		case 4:return mobb.atk=mob4(mobb);
    		case 5:return mobb.atk=mob5(mobb);
    		case 6:return mobb.atk=mob6(mobb);
    		case 7:return mobb.atk=mob7(mobb);
    		case 8:return mobb.atk=mob8(mobb);
    		case 9:return mobb.atk=mob9(mobb);
    		case 10:return mobb.atk=mob10(mobb);
    		case 11:return mobb.atk=mob11(mobb);
    		case 12:return mobb.atk=mob12(mobb);
    		case 13:return mobb.atk=mob13(mobb);
    		case 14:return mobb.atk=mob14(mobb);
    		case 15:return mobb.atk=mob15(mobb);
    		case 16:return mobb.atk=mob16(mobb);
    		case 17:return mobb.atk=mob17(mobb);
    		case 18:return mobb.atk=mob18(mobb);
    		case 19:return mobb.atk=mob19(mobb);
    		case 20:return mobb.atk=mob20(mobb);
    		default:break;
    	}
    	return 0;
    }
    void mobinit(mob &mobb){
    	switch(mobb.lik){
    		case 1:mob1init(mobb);break;
    		case 2:mob2init(mobb);break;
    		case 3:mob3init(mobb);break;
    		case 4:mob4init(mobb);break;
    		case 5:mob5init(mobb);break;
    		case 6:mob6init(mobb);break;
    		case 7:mob7init(mobb);break;
    		case 8:mob8init(mobb);break;
    		case 9:mob9init(mobb);break;
    		case 10:mob10init(mobb);break;
    		case 11:mob11init(mobb);break;
    		case 12:mob12init(mobb);break;
    		case 13:mob13init(mobb);break;
    		case 14:mob14init(mobb);break;
    		case 15:mob15init(mobb);break;
    		case 16:mob16init(mobb);break;
    		case 17:mob17init(mobb);break;
    		case 18:mob18init(mobb);break;
    		case 19:mob19init(mobb);break;
    		case 20:mob20init(mobb);break;
    		default:break;
    	}
    	return;
    }
    void diucard(){
    	clshs();
    	printf("请选择一张牌丢弃\n");
    	for(int i=1;i<maxncard;i++){
    		if(hdcard[i]>0){
    			printf("%d:",i);
    			cout<<name[i];
    			printf(" %d张\n",hdcard[i]);
    		}
    	}
    	while(1){
    		bool nopi=0;
    		for(int i=1;i<maxncard;i++){
    			if(hdcard[i]>0)nopi=1;
    		}
    		if(!nopi)break;
    		int trwcd;
    		trwcd=imputs();
    		if(hdcard[trwcd]>=1){
    			switch(trwcd){
    				case 37:nowpow+=1;break;
    				case 38:nowpow+=2;break;
    				case 39:choucard();choucard();break;
    				case 40:choucard();choucard();choucard();break;
    			}
    			hdcard[trwcd]--;
    			uscard[trwcd]++;
    			break;
    		}
    		printf("请重新选择\n");
    	}
    }
    void atkcal(int pai,mob &xxmob){
    	hdcard[pai]--;
    	if(!ifdis[pai])uscard[pai]++;
    	nowpow-=max(cost[pai],0);
    	int atkkk=atk[pai]+player.strg;
    	if(def[pai]!=0)player.shld+=player.deff(def[pai])*tmsc[pai];
    	player.shld+=player.yxia;
    	if(pai==6||pai==17)atkkk+=player.jjun;
    	if(player.xur>0)atkkk=atkkk*4/5;
    	if(xxmob.ys>0)atkkk=atkkk*3/2;
    	if(xxmob.yhuxt>0)atkkk=min(1,atkkk);
    	int tmscc=tmsc[pai];
    	if(tmsc[pai]==-1){
    		tmscc=nowpow;
    	}
    	if(needd[pai]==1){
    		if(paix[pai]==0){
    			int zhhsh=atkkk*tmscc-xxmob.shld;
    			xxmob.shld=max(-zhhsh,0);
    			if(zhhsh>=0&&xxmob.jbkcmx>0)zhhsh=min(zhhsh,xxmob.jbkc);
    			zhhsh=max(zhhsh,0);
    			xxmob.heal-=zhhsh;
    			if(xxmob.jbkcmx>0)xxmob.jbkc=max(xxmob.jbkc-zhhsh,0);
    			if(player.yhuxt==0)player.shld-=xxmob.jinj*tmscc;
    			else player.shld-=min(xxmob.jinj,tmscc);
    			if(player.shld<0)player.heal+=player.shld,player.shld=0;
    		}
    	}
    	if(needd[pai]==2){
    		for(int i=1;i<=mbcnt;i++){
    			if(mmmob[i].heal>0){
    				if(paix[pai]==0){
    					int zhhsh=atkkk*tmscc-mmmob[i].shld;
    					mmmob[i].shld=max(-zhhsh,0);
    					if(zhhsh>=0&&mmmob[i].jbkcmx>0)zhhsh=min(zhhsh,mmmob[i].jbkc);
    					zhhsh=max(zhhsh,0);
    					mmmob[i].heal-=zhhsh;
    					if(mmmob[i].jbkcmx>0)mmmob[i].jbkc=max(mmmob[i].jbkc-zhhsh,0);
    					if(player.yhuxt==0)player.shld-=mmmob[i].jinj*tmscc;
    					else player.shld-=min(mmmob[i].jinj,tmscc);
    					if(player.shld<0)player.heal+=player.shld,player.shld=0;
    				}
    			}
    		}
    	}
    	switch(pai){
    		case 3:diucard();break;
    		case 4:
    		if(xxmob.rgzp==0)xxmob.xur+=1;
    		else xxmob.rgzp--;
    		break;
    		case 5:hdcard[6]+=3;break;
    		case 10:
    		for(int i=1;i<=mbcnt;i++){
    			if(mmmob[i].rgzp==0)mmmob[i].xur+=2;
    			else mmmob[i].rgzp--;
    		}
    		break;
    		case 11:
    		if(xxmob.rgzp==0)xxmob.ys+=99;
    		else xxmob.rgzp--;
    		break;
    		case 14:diucard();break;
    		case 15:
    		if(xxmob.rgzp==0)xxmob.xur+=2;
    		else xxmob.rgzp--;
    		break;
    		case 16:hdcard[6]+=4;break;
    		case 21:
    		for(int i=1;i<=mbcnt;i++){
    			if(mmmob[i].rgzp==0)mmmob[i].xur+=3;
    			else mmmob[i].rgzp--;
    		}
    		break;
    		case 22:
    		if(xxmob.rgzp==0)xxmob.ys+=99;
    		else xxmob.rgzp--;
    		break;
    		case 23:choucard();choucard();break;
    		case 24:choucard();choucard();break;
    		case 25:nowpow+=1;choucard();choucard();break;
    		case 26:nowpow+=2;choucard();choucard();break;
    		case 27:choucard();choucard();choucard();diucard();break;
    		case 28:choucard();choucard();choucard();choucard();diucard();break;
    		case 29:if(xxmob.rgzp==0)xxmob.zdu+=5;
    		else xxmob.rgzp--;
    		break;
    		case 30:if(xxmob.rgzp==0)xxmob.zdu+=7;
    		else xxmob.rgzp--;
    		break;
    		case 31:if(xxmob.rgzp==0)xxmob.zdu+=3;
    		else xxmob.rgzp--;
    		break;
    		case 32:if(xxmob.rgzp==0)xxmob.zdu+=4;
    		else xxmob.rgzp--;
    		break;
    		case 33:xxmob.zdu*=2;break;
    		case 34:xxmob.zdu*=3;break;
    		case 35:choucard();diucard();break;
    		case 36:choucard();choucard();diucard();diucard();break;
    		case 43:choucard();diucard();break;
    		case 44:choucard();diucard();break;
    		case 45:hdcard[6]+=1;break;
    		case 46:hdcard[6]+=2;break;
    		case 47:if(xxmob.rgzp==0)xxmob.xur+=1;
    		else xxmob.rgzp--;break;
    		case 48:if(xxmob.rgzp==0)xxmob.xur+=2;
    		else xxmob.rgzp--;break;
    		case 49:player.jjun+=4;break;
    		case 50:player.jjun+=6;break;
    		case 51:player.mje+=2;break;
    		case 52:player.mje+=3;break;
    		case 53:player.yhuxt+=2;
    		if(player.rgzp==0)player.mjead--;
    		else player.rgzp--;break;
    		case 54:player.yhuxt+=3;
    		if(player.rgzp==0)player.mjead--;
    		else player.rgzp--;break;
    		case 55:player.yxia++;break;
    		case 56:player.yxia++;break;
    		case 63:choucard();break;
    		case 64:choucard();choucard();break;
    		case 65:
    			for(int i=1;i<maxncard;i++){
    				if(paix[i]!=0){
    					player.shld+=hdcard[i]*player.deff(5);hdcard[i]=0;
    				}
    			}
    			break;
    		case 66:
    			for(int i=1;i<maxncard;i++){
    				if(paix[i]!=0){
    					player.shld+=hdcard[i]*player.deff(7);hdcard[i]=0;
    				}
    			}
    			break;
    		case 67:hdcard[58]+=2;break;
    		case 68:hdcard[58]+=2;break;
    		case 69:player.bl=1;break;
    		case 70:player.bl=1;break;
    		case 71:player.shld=max(player.shld*2,0);break;
    		case 72:player.shld=max(player.shld*2,0);break;
    		case 73:
    			if(xxmob.heal>0){
    				int zhhsh=player.shld-xxmob.shld;
    				xxmob.shld=max(-zhhsh,0);
    				if(zhhsh>=0&&xxmob.jbkcmx>0)zhhsh=min(zhhsh,xxmob.jbkc);
    				zhhsh=max(zhhsh,0);
    				xxmob.heal-=zhhsh;
    				if(xxmob.jbkcmx>0)xxmob.jbkc=max(xxmob.jbkc-zhhsh,0);
    				if(player.yhuxt==0)player.shld-=xxmob.jinj*tmscc;
    				else player.shld-=min(xxmob.jinj,tmscc);
    				if(player.shld<0)player.heal+=player.shld,player.shld=0;
    			}
    			break;
    		case 74:
    			if(xxmob.heal>0){
    				int zhhsh=player.shld-xxmob.shld;
    				xxmob.shld=max(-zhhsh,0);
    				if(zhhsh>=0&&xxmob.jbkcmx>0)zhhsh=min(zhhsh,xxmob.jbkc);
    				zhhsh=max(zhhsh,0);
    				xxmob.heal-=zhhsh;
    				if(xxmob.jbkcmx>0)xxmob.jbkc=max(xxmob.jbkc-zhhsh,0);
    				if(player.yhuxt==0)player.shld-=xxmob.jinj*tmscc;
    				else player.shld-=min(xxmob.jinj,tmscc);
    				if(player.shld<0)player.heal+=player.shld,player.shld=0;
    			}
    			break;
    		case 75:
    			if(xxmob.rgzp==0)xxmob.ys+=2;
    			else xxmob.rgzp--;
    			break;
    		case 76:
    			if(xxmob.rgzp==0)xxmob.ys+=3;
    			else xxmob.rgzp--;
    			break;
    		case 77:player.heal-=6;nowpow+=2;choucard();choucard();choucard();break;
    		case 78:player.heal-=6;nowpow+=2;choucard();choucard();choucard();choucard();choucard();break;
    		case 79:player.strg+=2;break;
    		case 80:player.strg+=3;break;
    		case 81:player.strg=max(player.strg*2,player.strg);break;
    		case 82:player.strg=max(player.strg*2,player.strg);break;
    		case 91:uncard[57]++;break;
    		case 92:uncard[57]++;break;
    		case 97:
    			if(xxmob.rgzp==0)xxmob.xur+=2;
    			else xxmob.rgzp--;
    			break;
    		case 98:
    			if(xxmob.rgzp==0)xxmob.xur+=3;
    			else xxmob.rgzp--;
    			break;
    		case 99:
    			for(int i=1;i<=mbcnt;i++){
    				if(mmmob[i].rgzp==0)mmmob[i].ys++;
    				else mmmob[i].rgzp--;
    			}
    			break;
    		case 100:
    			for(int i=1;i<=mbcnt;i++){
    				if(mmmob[i].rgzp==0)mmmob[i].ys++;
    				else mmmob[i].rgzp--;
    			}
    			break;
    		case 101:player.strg+=nowpow;break;
    		case 102:player.strg+=(nowpow+1);break;
    		case 103:
    			for(int i=1;i<=mbcnt;i++){
    				if(mmmob[i].heal<=0)continue;
    				int tsmbh=Rr(7,xlrd)-1;
    				mmmob[i].heal+=tsmbh;mmmob[i].mxheal+=tsmbh;
    				mmmob[i].ys++;mmmob[i].strg++;mmmob[i].shld/=3;
    			}
    			player.strg++;player.xur++;
    			break;
    		case 104:
    			for(int i=1;i<=mbcnt;i++){
    				if(mmmob[i].heal<=0)continue;
    				int tsmbh=Rr(5,xlrd)-1;
    				mmmob[i].heal+=tsmbh;mmmob[i].mxheal+=tsmbh;
    				mmmob[i].ys+=2;mmmob[i].strg++;mmmob[i].shld=0;
    			}
    			player.strg+=2;player.xur++;
    			break;
    		case 105:cfzd(1,2);break;
    		case 106:cfzd(1,2);break;
    		case 107:add(1);break;
    		case 108:add(1);break;
    		case 109:add(2);add(2);break;
    		case 110:add(2);add(2);break;
    		case 111:add(2);choucard();break;
    		case 112:add(2);choucard();choucard();break;
    		case 113:player.chcs+=2;player.chcs=min(player.mxcs,player.chcs);break;
    		case 114:player.chcs+=3;player.chcs=min(player.mxcs,player.chcs);break;
    		case 115:add(4);break;
    		case 116:add(4);break;
    		case 117:add(3);break;
    		case 118:add(3);break;
    		case 119:player.rgzp++;break;
    		case 120:player.rgzp++;break;
    		case 121:player.focus+=1;break;
    		case 122:player.focus+=2;break;
    		case 123:player.focus+=4;
    			if(player.rgzp==0)player.fcsu--;
    			else player.rgzp--;
    			break;
    		case 124:player.focus+=5;
    			if(player.rgzp==0)player.fcsu--;
    			else player.rgzp--;
    			break;
    		case 125:add(1);add(2);add(3);break;
    		case 126:add(1);add(2);add(3);break;
    		case 127:
    			for(int i=1;i<=mbcnt;i++){
    				int dmgic=player.icgs*2;
    				if(mmmob[i].heal>0){
    					int zhhsh=dmgic-mmmob[i].shld;
    					mmmob[i].shld=max(-zhhsh,0);
    					if(zhhsh>=0&&mmmob[i].jbkcmx>0)zhhsh=min(zhhsh,mmmob[i].jbkc);
    					zhhsh=max(zhhsh,0);
    					mmmob[i].heal-=zhhsh;
    					if(mmmob[i].jbkcmx>0)mmmob[i].jbkc=max(mmmob[i].jbkc-zhhsh,0);
    					if(player.yhuxt==0)player.shld-=mmmob[i].jinj*tmscc;
    					else player.shld-=min(mmmob[i].jinj,tmscc);
    					if(player.shld<0)player.heal+=player.shld,player.shld=0;
    				}
    			}
    			break;
    		case 128:
    			for(int i=1;i<=mbcnt;i++){
    				int dmgic2=player.icgs*3;
    				if(mmmob[i].heal>0){
    					int zhhsh=dmgic2-mmmob[i].shld;
    					mmmob[i].shld=max(-zhhsh,0);
    					if(zhhsh>=0&&mmmob[i].jbkcmx>0)zhhsh=min(zhhsh,mmmob[i].jbkc);
    					zhhsh=max(zhhsh,0);
    					mmmob[i].heal-=zhhsh;
    					if(mmmob[i].jbkcmx>0)mmmob[i].jbkc=max(mmmob[i].jbkc-zhhsh,0);
    					if(player.yhuxt==0)player.shld-=mmmob[i].jinj*tmscc;
    					else player.shld-=min(mmmob[i].jinj,tmscc);
    					if(player.shld<0)player.heal+=player.shld,player.shld=0;
    				}
    			}
    			break;
    		case 129:add(1);add(1);player.ddlx=1;break;
    		case 130:add(1);add(1);add(1);player.ddlx=1;break;
    	}
    	if(tmsc[pai]==-1){
    		nowpow=0;
    	}
    	return;
    } 
    void checkun(){
    	bool flag=0;
    	for(int i=1;i<maxncard;i++){
    		if(uncard[i]>0){
    			flag=1;
    			break;
    		}
    	}
    	if(!flag){
    		for(int i=1;i<maxncard;i++){
    			uncard[i]=uscard[i];
    			uscard[i]=0;
    		}
    	}
    	return;
    }
    int selcard(){
    	int sumcard=0;
    	for(int i=1;i<maxncard;i++){
    		sumcard+=uncard[i];
    	}
    	if(sumcard==0)return 0;
    	int Rrcard=Rr(sumcard,cprd);
    	for(int i=1;i<maxncard;i++){
    		Rrcard-=uncard[i];
    		if(Rrcard<=0)return i;
    	}
    }
    void choucard(){
    	checkun();
    	int nxcard=selcard();
    	hdcard[nxcard]++;
    	uncard[nxcard]--;
    } 
    void getcard(){
    	int fgbc=0;
    	for(int i=1;i<maxncard;i++){
    		if(dycc[i]){
    			while(uncard[i]>0){
    				fgbc++;
    				uncard[i]--;
    				hdcard[i]++;
    			}
    		}
    	}
    	for(int i=1;i<=5-fgbc+player.xhhcp;i++){
    		choucard();
    	}
    	return;
    }
    void clearcard(){
    	for(int i=1;i<maxncard;i++){
    		if(!xuw[i]){
    			uscard[i]+=hdcard[i];hdcard[i]=0;
    		}
    		else{
    			hdcard[i]=0;
    		}
    	}
    }
    void playerchoose(){
    	nowpow=3;
    	for(int i=1;i<=player.chcs;i++){
    		if(player.bal[i]==4)nowpow++;
    	}
    	while(checkmh()){
    		clshs();
    		for(int i=1;i<=mbcnt;i++){
    			if(mmmob[i].xur>0&&!mmmob[i].sfxr){
    				mmmob[i].atk=mmmob[i].atk*4/5;
    				mmmob[i].sfxr=1;
    			}
    			if(player.ys>0&&!mmmob[i].sfys){
    				mmmob[i].atk=mmmob[i].atk*3/2;
    				mmmob[i].sfys=1;
    			}
    		}
    		for(int i=1;i<=mbcnt;i++){
    			if(mmmob[i].heal>0){
    				mmmob[i].mobshuo(i,mmmob[i].lik);
    			}
    		}
    		printf("你有:\n");
    		for(int i=1;i<maxncard;i++){
    			if(hdcard[i]>0){
    				cout<<i<<"   "<<name[i]<<"   "<<hdcard[i]<<"个   费用:";
    				if(cost[i]>=0)cout<<cost[i]<<endl;
    				if(cost[i]==-1)cout<<"X"<<endl;
    			}
    		}
    		printf("费用:%d\n",nowpow);
    		player.mobshuo(0,0);
    		printf("请选择卡牌与攻击目标:(0表示结束回合,-1查看卡牌功能)\n") ;
    		int plchoose,atkmobb=0;
    		plchoose=imputs();
    		if(plchoose==0)break;
    		if(plchoose==-1){
    			player.jieshao();continue;
    		}
    		if(!nfdc[plchoose])continue;
    		if(needd[plchoose]==1){
    			atkmobb=imputs();
    			if(mmmob[atkmobb].heal<=0)continue;
    		}
    		if(hdcard[plchoose]==0||nowpow<cost[plchoose])continue;
    		atkcal(plchoose,mmmob[atkmobb]);
    	}
    	clearcard();
    	return;
    }
    bool checkmh(){
    	bool chflg=0;
    	for(int i=1;i<=mbcnt;i++){
    		if(mmmob[i].heal>0)chflg=1;
    	}
    	return chflg;
    }
    void cardinit(){
    	for(int i=1;i<maxncard;i++){
    		hdcard[i]=uscard[i]=0;
    		uncard[i]=tcard[i];
    	}
    	defmob.heal=1;
    }
    void mobchoose(){
    	for(int i=1;i<=mbcnt;i++){
    		if(mmmob[i].heal>0)mobchs(mmmob[i]);
    	}
    	return;
    }
    int chosejl(){
    	int sumgailv=0;
    	for(int i=1;i<maxncard;i++){
    		if((nwjs==jsp[i])||(jsp[i]==0)||nwjs>maxjs)sumgailv+=gailv[i];
    	}
    	int xdjgp=Rr(sumgailv,hdkprd);
    	for(int i=1;i<maxncard;i++){
    		if((nwjs==jsp[i])||(jsp[i]==0)||nwjs>maxjs){
    			if(gailv[i]>=xdjgp){
    				return i;
    			}
    			xdjgp-=gailv[i];
    		}
    	}
    	return 60;
    }
    void giveplayercard(){
    	clshs();
    	if(nowju>=cenda*maxcen)return; 
    	printf("你获胜了\n选一张牌(0表示不要)\n");
    	for(int i=1;i<maxncard;i++) chocard[i]=0;
    	int chocnt=0;
    	while(chocnt<3){
    		int Rrr=chosejl();
    		if(!chocard[Rrr]){
    			chocnt++;
    			chocard[Rrr]=1;
    			ccd[chocnt]=Rrr;
    		}
    	}
    	for(int i=1;i<=3;i++){
    		printf("%d   ",i);
    		cout<<name[ccd[i]];
    		printf("   费用:");
    		if(cost[ccd[i]]==-1)printf("X");
    		else printf("%d",cost[ccd[i]]);
    		puts("");
    	}
    	int chocc;
    	chocc=imputs();
    	if(chocc==0){
    		return;
    	}
    	tcard[ccd[chocc]]++;
    	return;
    }
    void mobattk(){
    	for(int i=1;i<=mbcnt;i++){
    		if(mmmob[i].heal-mmmob[i].zdu>0){
    			if(mmmob[i].fl>0&&mmmob[i].heal<=mmmob[i].mxheal/2)mmmob[i].atk=0;
    			if(player.yhuxt==0)player.shld-=mmmob[i].atk;
    			else player.shld-=min(mmmob[i].atk,1);
    			if(mmmob[i].atk>0)mmmob[i].shld-=player.jinj;
    			if(mmmob[i].shld<0)mmmob[i].heal+=mmmob[i].shld; 
    		}
    	}
    	if(player.shld<0)player.heal+=player.shld;
    	return;
    }
    void deletecard(){
    	clshs();
    	for(int i=1;i<maxncard;i++){
    		if(tcard[i]>0&&kysc[i]==0){
    			printf("%d   ",i);
    			cout<<name[i];
    			printf("   %d张\n",tcard[i]);
    		}
    	}
    	printf("选择一张牌删除(0表示不删)\n");
    	int delcar;
    	delcar=imputs();
    	if(delcar==0||kysc[delcar]==1){
    		return;
    	}
    	tcard[delcar]=max(0,tcard[delcar]-1);
    	return;
    }
    void shop(){
    	for(int i=1;i<maxncard;i++)chocard[i]=0;
    	int ctwc=0,spcp=5;
    	while(ctwc<spcp){
    		int zcxz=chosejl();
    		if(chocard[zcxz]==0){
    			chocard[zcxz]++;
    			ctwc++;
    			ccd[ctwc]=zcxz;
    		}
    	}
    	bool sfsp=0;
    	while(1){
    		clshs();printf("欢迎光临\n");
    		for(int i=1;i<=spcp;i++){
    			if(chocard[ccd[i]]>0){
    				cout<<i<<" "<<name[ccd[i]]<<" 价格:"<<gcst[ccd[i]]<<endl;
    			}
    		}
    		if(!sfsp){
    			if(!sfsp){
    				cout<<spcp+1<<" 删牌 价格:"<<nwspct<<endl;
    			}
    		}
    		printf("你选择?(0表示离开)\n");
    		int plchsp=0;plchsp=imputs();
    		if(plchsp<=0||plchsp>spcp+1)return;
    		if(plchsp<=spcp&&chocard[ccd[plchsp]]<=0)continue;
    		if(plchsp<=spcp){
    			if(player.goldb<gcst[ccd[plchsp]])continue;
    			player.goldb-=gcst[ccd[plchsp]];
    			tcard[ccd[plchsp]]++;
    			chocard[ccd[plchsp]]=0;
    		}
    		if(plchsp>spcp){
    			if(player.goldb<nwspct)continue;
    			player.goldb-=nwspct;
    			nwspct+=25;sfsp=1;
    			deletecard();
    		}
    	}
    }
    int rdrom(){
    	int sumrm=0;
    	for(int i=1;i<=maxnrom;i++){
    		sumrm+=romrdgl[i];
    	}
    	int chrdrm=Rr(sumrm,fjrd);
    	for(int i=1;i<=maxnrom;i++){
    		if(chrdrm<=romrdgl[i]){
    			return i;
    		}
    		chrdrm-=romrdgl[i];
    	}
    	return 0;
    }
    void ctmob(){
    	int cens=(nowju-1)/cenda+1;
    	int cenz=(nowju-1)%cenda+1;
    	mbcnt=0;
    	if(cens==1&&cenz<cenda){
    		int mbzl=Rr(11,gwrd);
    		switch(mbzl){
    			case 1:mbcrt(1);break;
    			case 2:mbcrt(3);mbcrt(2);break;
    			case 3:mbcrt(4);break;
    			case 4:mbcrt(5);mbcrt(6);mbcrt(7);break;
    			case 5:mbcrt(8);break;
    			case 6:mbcrt(8);mbcrt(2);break;
    			case 7:mbcrt(9);break;
    			case 8:mbcrt(11);break;
    			case 9:mbcrt(12);break;
    			case 10:mbcrt(17);break;
    			case 11:mbcrt(10);break;
    		}
    	}
    	if(cens==1&&cenz==cenda){
    		int mbzl=Rr(2,gwrd);
    		switch(mbzl){
    			case 1:mbcrt(10);mbcrt(16);break;
    			case 2:mbcrth(19,140);break;
    		}
    	}
    	if(cens==2&&cenz<cenda){
    		int mbzl=Rr(7,gwrd);
    		switch(mbzl){
    			case 1:mbcrt(8);mbcrt(4);break;
    			case 2:mbcrt(8);mbcrt(4);mbcrt(2);break;
    			case 3:mbcrt(8);mbcrt(5);break;
    			case 4:mbcrt(10);mbcrt(2);mbcrt(2);break;
    			case 5:mbcrt(15);break;
    			case 6:mbcrt(17);mbcrt(17);break;
    			case 7:mbcrt(13);break;
    		}
    	}
    	if(cens==2&&cenz==cenda){
    		int mbzl=Rr(1,gwrd);
    		switch(mbzl){
    			case 1:mbcrt(13);mbcrt(13);break;
    		}
    	}
    	if(cens>2&&cenz<cenda&&cens<=maxcen){
    		int mbzl=Rr(8,gwrd);
    		switch(mbzl){
    			case 1:mbcrt(18);break;
    			case 2:mbcrt(11);mbcrt(10);break;
    			case 3:mbcrt(12);mbcrt(2);break;
    			case 4:mbcrt(10);mbcrt(9);mbcrt(16);break;
    			case 5:mbcrt(15);mbcrt(16);break;
    			case 6:mbcrt(10);mbcrt(16);break;
    			case 7:mbcrt(17);mbcrt(17);mbcrt(17);break;
    			case 8:mbcrt(19);break;
    		}
    	}
    	if(cens>2&&cenz==cenda&&cens<=maxcen){
    		int mbzl=Rr(2,gwrd);
    		switch(mbzl){
    			case 1:mbcrt(18);mbcrt(15);break;
    			case 2:mbcrt(10);mbcrt(13);mbcrt(16);break;
    		}
    	}
    	if(cens>maxcen){
    		int mbzl=Rr(2,gwrd);
    		switch(mbzl){
    			case 1:mbcrth(19,152);mbcrth(19,142);break;
    			case 2:mbcrt(20);break;
    		}
    	}
    	return;
    }
    bool zdrom(){
    	ctmob();
    	player.mobinitt(0);
    	while(checkmh()){
    		getcard();
    		player.mobdf();
    		mobchoose();
    		playerchoose();
    		player.edhh();
    		mobattk();
    		player.zuatcal();
    		if(player.heal<=0){
    			printf("你输了\n");
    			return 0;
    		}
    	}
    	int tzmg=0;
    	for(int i=1;i<=mbcnt;i++){
    		tzmg=max(mmmob[i].goldb,tzmg);
    	}
    	player.goldb+=tzmg;
    	giveplayercard();
    	if(nowju%cenda==0)player.heal=maxheal;
    	return 1;
    }
    void plcardd(){
    	clshs();
    	printf("选择升级的卡片(0表示不升)\n");
    	for(int i=1;i<maxncard;i++){
    		if(!ifpl[i]&&tcard[i]>0){
    			printf("%d:",i);
    			cout<<name[i]<<endl;
    		}
    	}
    	int chosepc;
    	chosepc=imputs();
    	if(chosepc==0)return; 
    	if(!ifpl[chosepc]&&tcard[chosepc]>0){
    		tcard[chosepc]--;
    		tcard[ydpcd[chosepc]]++;
    	}
    	return;
    }
    void pluscard(){
    	clshs();
    	printf("请选择:\n1,休息\n2,锻造\n");
    	int playercos;
    	playercos=imputs();
    	if(playercos==1){
    		player.heal+=maxheal*30/100;
    	}
    	if(playercos==2){
    		plcardd();
    	}
    	return;
    }
    void jije(){
    	printf("是否进阶?\n1,是\n2,否\n");
    	int plxjj;
    	plxjj=imputs();
    	if(plxjj!=1)return; 
    	nwjs++;
    	switch(nwjs){
    		case 2:tcard[1]=max(0,tcard[1]-1);tcard[2]=max(0,tcard[2]-1);tcard[75]++;
    			yiwu[1]--;yiwu[2]++;
    			break;
    		case 3:yiwu[2]--;yiwu[3]++;break;
    		case 4:tcard[60]++;yiwu[1]++;yiwu[2]++;break;
    	}
    	nwjs=min(nwjs,maxjs+1);
    	return;
    }
    void que1(){//删除一张牌 
    	clshs();
    	printf("你决定:\n1,失去7点生命,删除一张牌\n2,离开\n");
    	int plcss;
    	plcss=imputs();
    	if(plcss==1){
    		player.heal-=7;
    		deletecard();
    	}
    }
    void que2(){
    	clshs();
    	printf("前面出现了一道光(IN12),你决定:\n");
    	printf("1,失去5点生命,获得一张随机牌\n");
    	printf("2,离开\n");
    	int plcss=imputs();
    	if(plcss==1){
    		player.heal-=5;
    		int jlp=chosejl();tcard[jlp]++;
    		printf("你获得了 ");cout<<name[jlp]<<endl;
    		Sleep(2000);
    	}
    }
    void que3(){
    	clshs();
    	printf("欢迎来到地精的游戏,你准备好了吗?\n");Sleep(1500);
    	printf("就当你准备好了吧\n");Sleep(1500);
    	printf("来吧\n");Sleep(1500);
    	int xxmax=6;
    	int xxpls=Rr(xxmax,whrd);
    	int jlppp;
    	switch(xxpls){
    		case 1:player.heal-=5;printf("砍你一刀\n");break;
    		case 2:deletecard();printf("删一张牌\n");break;
    		case 3:jlppp=chosejl();tcard[jlppp]++;printf("塞一张牌\n");break;
    		case 4:player.heal=maxheal;printf("回血\n");break;
    		case 5:deletecard();jlppp=chosejl();tcard[jlppp]++;printf("改变一张牌\n");break;
    		case 6:player.goldb+=100;printf("给金币\n");break;
    	}
    	Sleep(1000);
    	clshs();
    	printf("地精消失了\n");Sleep(2000);
    }
    void que4(){
    	printf("请选择:\n1,失去6点生命,升级一张牌\n2,失去6点生命,随机升级两张牌\n3,离开\n");
    	int plcss=imputs();
    	switch(plcss){
    		case 1:player.heal-=6;plcardd();break;
    		case 2:player.heal-=6;int ctsj=0;
    			while(ctsj<2){
    				int rrsj=Rr(maxncard-1,whrd);
    				if(tcard[rrsj]>0&&!ifpl[rrsj]){
    					tcard[ydpcd[rrsj]]++;
    					tcard[rrsj]--;
    					ctsj++;
    					printf("你升级了 ");cout<<name[rrsj]<<endl;
    				}
    				bool sfkysj=0;
    				for(int i=1;i<maxncard;i++){
    					if(tcard[i]>0&&!ifpl[i])sfkysj=1;
    				}
    				if(!sfkysj)break;
    			}
    			break;
    	}
    }
    bool ques(){
    	int maxwh=5;
    	int nww=Rr(maxwh,whrd);
    	switch(nww){
    		case 1:que1();break;
    		case 2:que2();break;
    		case 3:zdrom();break;
    		case 4:que3();break;
    		case 5:que4();break;
    	}
    	if(player.heal<=0)return 0;
    	return 1;
    }
    bool player_room(){
    	clshs();
    	if(nowju>cenda*maxcen&&nwjs<=maxjs){
    		printf("你赢了?");
    		Sleep(5000);
    		return 0;
    	}
    	if(nowju>cenda*maxcen+1){
    		printf("你赢了!");
    		Sleep(5000);
    		return 0;
    	}
    	cdbc();
    	int csrom=Rr(2,fjrd); 
    	int rroom=rdrom(),rroom2=rdrom();
    	if(nowju%cenda==cenda-1)rroom=3,csrom=1;
    	if(nowju%cenda==0)rroom=1,csrom=1;
    	if(nowju%cenda==1)rroom=1,csrom=1;
    	int romcs[maxnrom+1];
    	for(int i=1;i<=maxnrom;i++){
    		romcs[i]=0;
    	}
    	romcs[rroom]++;
    	if(csrom==2)romcs[rroom2]++;
    	if(nwjs==maxjs+1&&romcs[4]>0){
    		romcs[1]+=romcs[4];romcs[4]=0;
    	}
    	if(cenda*maxcen-nowju-1<=maxjs+1-nwjs&&nowju<=cenda*maxcen-2){
    		for(int i=1;i<=maxnrom;i++)romcs[i]=0;
    		romcs[4]=1;
    	}
    	printf("请选择;\n");
    	for(int i=1;i<=maxnrom;i++){
    		if(romcs[i]>0){
    			switch(i){
    				case 1:printf("1,战斗\n");break;
    				case 2:printf("2,商店\n");break;
    				case 3:printf("3,火堆\n");break;
    				case 4:printf("4,进阶\n");break;
    				case 5:printf("5,问号\n");break;
    			}
    		}
    	}
    	int proom;
    	while(1){
    		proom=imputs();
    		if(romcs[proom]>0)break;
    		printf("请重新选择\n");
    	}
    	switch(proom){
    		case 1:return zdrom();break;
    		case 2:shop();return 1;break;
    		case 3:pluscard();return 1;break;
    		case 4:jije();return 1;break;
    		case 5:return ques();break;
    	}
    }
    int main(){
    	srand(time(NULL));
    	printf("请选择:\n1,删除存档\n2,使用存档\n");
    	int plcsc=imputs();
    	if(plcsc==2){
    		freopen("slay.txt","r",stdin);
    		nowju=imputs();player.heal=imputs();maxheal=imputs();nwjs=imputs();
    		nwspct=imputs();player.goldb=imputs();cprd=imputs();hdkprd=imputs();
    		gwrd=imputs();fjrd=imputs();gjrd=imputs();xlrd=imputs();tiprd=imputs();
    		gbrd=imputs();whrd=imputs();qfrd=imputs();
    		for(int i=1;i<maxncard;i++){
    			tcard[i]=imputs();
    		}
    		for(int i=1;i<=ttyw;i++){
    			yiwu[i]=imputs();
    		}
    		fclose(stdin);
    	    freopen("CON","r",stdin);
    	}
    	else{
    		long long plseed;
    		printf("请输入种子:(负数随机种)\n");
    		int xseed=rand();
    		srand(xseed);
    		plseed=imputs();
    		if(plseed==1769){
    			for(int i=1;i<maxncard;i++){
    				tcard[i]=zuobicard[i];
    			}
    		} 
    		if(plseed>=0)srand(plseed);
    		else plseed=xseed;
    		printf("种子号:%d\n",plseed);
    		cprd=hdkprd=gwrd=fjrd=gjrd=whrd=gbrd=xlrd=tiprd=qfrd=plseed;
    		player.heal=75;player.goldb=99;
    		system("pause");
    	}
    	while(1){
    		nowju++;
    		cardinit();
    		if(!player_room()){
    			return 0;
    		}
    	}
    }
    
  • Recent Activities