8 条题解

  • 0
    @ 2025-12-26 13:53:33
    #include<bits/stdc++.h>
    using namespace std;
    string xuan1,xuan2;
    string mizi;
    int nianling,guan=1,xuan3,youpai=1,money=1000;
    
    struct ren{
    	int gong,fang,xue,have,number,jin,shangzhen;
    	string shu; 
    	string name;
    }jue[10005],juee[10005];
    int shu(int a,int b){
    	int rangeStart=1;
        int rangeEnd=10;
        int ran=rand()%(rangeEnd-rangeStart+1)+rangeStart;
    	if(jue[a].shu=="无"){
    		if(juee[b].shu!="无"){
    			return -1;
    		}
    		else return 0;
    	}
    	if(jue[a].shu=="雷"){
    		if(juee[b].shu=="土"){
    			return -1;
    		}
    		else if(juee[b].shu=="水"){
    			if(ran<=3){
    				return juee[b].gong*-1;
    			}
    			return 1;
    		}
    	}
    	if(jue[a].shu=="火"){
    			if(juee[b].shu=="水"){
    				if(ran<=3){
    					return juee[b].gong*-1;
    				}
    				return -1;
    			}
    			else if(juee[b].shu=="木"){
    				return 1;
    			}
    		}
    	if(jue[a].shu=="水"){
    			if(juee[b].shu=="雷"){
    				return -1;
    			}
    			else if(juee[b].shu=="火"){
    				return 1;
    			}
    		}
    	if(jue[a].shu=="木"){
    			if(juee[b].shu=="火"){
    				return -1;
    			}
    			else if(juee[b].shu=="土"){
    				return 1;
    			}
    		}
    	if(jue[a].shu=="土"){
    			if(juee[b].shu=="木"){
    				return -1;
    			}
    			else if(juee[b].shu=="雷"){
    				return 1;
    			}
    		}
    }
    void chuang(int gua){
    	for(int i=1;i<=20;i++){
    		jue[i].shangzhen=0;
    	}
    	if(gua==1){
    		int di[100];
    		di[1]=1;
    		cout<<"敌人:"<<endl;
    		for(int j=1;j<=1;j++){
    			int i=di[j];
    			cout<<"名字:"<<juee[i].name<<endl<<"攻击:"<<juee[i].gong<<" 血量:"<<juee[i].xue<<" 护盾:"<<juee[i].fang<<" 属性;"<<juee[i].shu<<endl;
    		}
    		int ke=1;
    		cout<<"我方可上阵人数:"<<ke<<endl;
    		cout<<"是否挑战(请输入是或否)"<<endl;
    		cin>>xuan1;
    		if(xuan1=="是"){
    			for(int i=1;i<=20;i++){
    				if(jue[i].have==1){
    					cout<<"编号:"<<jue[i].number<<"名字:"<<jue[i].name<<endl<<"攻击:"<<jue[i].gong<<" 血量:"<<jue[i].xue<<" 护盾:"<<jue[i].fang<<" 属性;"<<jue[i].shu<<endl;
    				}
    			}
    			int wo[15];
    			for(int i=1;i<=ke;i++){
    				while(true){
    					cout<<"输入编号来上阵角色"<<endl;
    					cin>>xuan3;
    					if(jue[xuan3].have==1){
    						if(jue[xuan3].shangzhen==0){
    							cout<<jue[xuan3].name<<"蓄势待发"<<endl;
    							wo[i]=xuan3;
    							break;
    						}
    					}
    					else{
    						cout<<"你没这个角色!"<<endl;
    					}
    				}
    			}
    			cout<<"战斗开始!"<<endl;
    			for(int j=1;j<=1;j++){
    				int i=di[j];
    				cout<<jue[i].name<<' ';
    			}
    			cout<<"----------------------"<<endl<<"----------VS----------"<<endl<<"----------------------";
    			for(int i=1;i<=ke;i++){
    				cout<<jue[wo[i]].name<<' ';
    			}
    			cout<<endl;
    			cout<<"还没做完"<<endl;
    			int si=0,dis=0;
    			while(si!=1&&dis!=1){
    				cout<<"输入编号选择进攻的角色(我方的进攻回合)"<<endl;
    				for(int i=1;i<=ke;i++){ 
    					cout<<"编号:"<<i<<"  名字:"<<jue[wo[i]].name<<endl<<"  攻击:"<<jue[wo[i]].gong<<"  血量:"<<jue[wo[i]].xue<<"  护盾:"<<jue[wo[i]].fang<<"  属性;"<<jue[wo[i]].shu<<endl;
    				}
    				cin>>xuan3;
    				if(xuan3<=ke&&xuan3>0){
    					if(jue[wo[xuan3]].xue>0){
    						int xuan4;
    						while(true){
    							cout<<"输入编号以选择攻击对象(准备攻击)"<<endl;
    							for(int j=1;j<=1;j++){
    								int i=di[j];
    								cout<<"编号:"<<i<<"  名字:"<<juee[i].name<<endl<<"  攻击:"<<juee[i].gong<<"  血量:"<<juee[i].xue<<"  护盾:"<<juee[i].fang<<"  属性;"<<juee[i].shu<<endl;
    							}
    							cin>>xuan4;
    							if(xuan4<=1&&xuan4>0){
    								if(juee[di[xuan4]].xue>0){
    									if(jue[wo[xuan3]].shu==juee[di[xuan4]].shu){
    										if(juee[di[xuan4]].shu=="土"){
    											if(juee[di[xuan4]].fang>0){
    												if(jue[wo[xuan3]].gong-1>=juee[di[xuan4]].fang){
    													cout<<juee[di[xuan4]].name<<"破防了!"<<endl;
    													juee[di[xuan4]].fang=0;
    													break;
    												}
    												else{
    													juee[di[xuan4]].fang-=jue[wo[xuan3]].gong+1;
    													cout<<"造成了"<<jue[wo[xuan3]].gong-1<<"点伤害!"<<endl;
    													break;
    												}
    											}
    											else{
    												if(jue[wo[xuan3]].gong-1>=juee[di[xuan4]].xue){
    													cout<<juee[di[xuan4]].name<<"死掉了!"<<endl;
    													juee[di[xuan4]].xue=0;
    													if(juee[di[xuan4]].shu=="木"){
    														jue[wo[xuan3]].xue-=juee[di[xuan4]].gong;
    														if(jue[wo[xuan3]].xue<=0){
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打死了!"<<endl;
    															si++;
    														}
    														else{
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打了"<<juee[di[xuan4]].gong<<"滴血"<<endl;
    														}
    													}
    													dis++;
    													break;
    												}
    												else{
    													juee[di[xuan4]].xue=jue[wo[xuan3]].gong+1;
    													cout<<"造成了"<<jue[wo[xuan3]].gong-1<<"点伤害!"<<endl;
    													break;
    												}
    											}
    										}
    										else if(jue[xuan3].shu=="雷"){
    											if(jue[wo[xuan3]].gong>=juee[di[xuan4]].xue){
    												cout<<juee[di[xuan4]].name<<"死掉了!"<<endl;
    												juee[di[xuan4]].xue=0;
    												dis++;
    												break;
    											}
    											else{
    												juee[di[xuan4]].xue=jue[wo[xuan3]].gong;
    												cout<<"造成了"<<jue[wo[xuan3]].gong<<"点伤害!"<<endl;
    												break;
    											}
    										}
    										else{
    											if(juee[di[xuan4]].fang>0){
    												if(jue[wo[xuan3]].gong>=juee[di[xuan4]].fang){
    													cout<<juee[di[xuan4]].name<<"破防了!"<<endl;
    													juee[di[xuan4]].fang=0;
    													if(juee[di[xuan4]].shu=="火") {
    														jue[wo[xuan3]].xue-=1;
    														if(jue[wo[xuan3]].xue<=0){
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打死了!"<<endl;
    															si++;
    														}
    														else{
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打了1滴血"<<endl;
    														}
    													}
    													break;
    												}
    												else{
    													if(juee[di[xuan4]].shu=="火") {
    														jue[wo[xuan3]].xue-=1;
    														if(jue[wo[xuan3]].xue<=0){
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打死了!"<<endl;
    															si++;
    														}
    														else{
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打了1滴血"<<endl;
    														}
    													}
    													juee[di[xuan4]].fang-=jue[wo[xuan3]].gong;
    													cout<<"造成了"<<jue[wo[xuan3]].gong<<"点伤害!"<<endl;
    													break;
    												}
    											}
    											else{
    												if(jue[wo[xuan3]].gong>=juee[di[xuan4]].xue){
    													cout<<juee[di[xuan4]].name<<"死掉了!"<<endl;
    													juee[di[xuan4]].xue=0;
    													dis++;
    													break;
    													if(juee[di[xuan4]].shu=="火") {
    														jue[wo[xuan3]].xue-=1;
    														if(jue[wo[xuan3]].xue<=0){
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打死了!"<<endl;
    															si++;
    														}
    														else{
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打了1滴血"<<endl;
    														}
    													}
    												}
    												else{
    													juee[di[xuan4]].xue=jue[wo[xuan3]].gong;
    													cout<<"造成了"<<jue[wo[xuan3]].gong<<"点伤害!"<<endl;
    													if(juee[di[xuan4]].shu=="火") {
    														jue[wo[xuan3]].xue-=1;
    														if(jue[wo[xuan3]].xue<=0){
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打死了!"<<endl;
    															si++;
    														}
    														else{
    															cout<<"我方"<<jue[wo[xuan3]].name<<"被反伤打了1滴血"<<endl;
    														}
    													}
    													break;
    												}
    											}
    										}
    									}
    								}
    								else{
    									cout<<"他已经死了"<<endl;
    								}
    							}
    							else{
    								cout<<"别瞎选"<<endl;
    							
    							}
    						}
    					}
    					else{
    						cout<<"他已经死了"<<endl;
    					}
    				}
    				else{
    					cout<<"别瞎选"<<endl;
    				}
    				
    			} 
    			if(dis==1){
    				cout<<"太牛了,你赢了!"<<endl;
    				guan++;
    				cout<<"获得一千元奖励!"<<endl;
    				money+=1000;
    			}
    			else{
    				cout<<"太废了,这都能输!"<<endl;
    			}
    		}
    		else{
    			cout<<"你太怂了"<<endl;
    			return ;
    		}
    	}
    }
    void zhuangtai(){
    	cout<<"名字:"<<mizi<<endl;
    	cout<<"年龄:"<<nianling<<endl;
    	cout<<"金钱:"<<money<<endl;
    	cout<<"关数:"<<guan<<endl;
    	cout<<"牌数;"<<youpai<<endl;
    	cout<<"有的牌;"<<endl;
    	for(int i=1;i<=20;i++){
    		if(jue[i].have==1){
    			cout<<"编号:"<<jue[i].number<<"名字:"<<jue[i].name<<endl<<"攻击:"<<jue[i].gong<<" 血量:"<<jue[i].xue<<" 护盾:"<<jue[i].fang<<" 属性;"<<jue[i].shu<<endl;
    		}
    	}
    }
    void shux(){
    	cout<<"属性介绍"<<endl;
    	cout<<"'无':被有属性的克制"<<endl;
    	cout<<"'火':受攻击反伤1点,克制木,被水克制"<<endl;
    	cout<<"'雷':无视护盾,克制水,被土克制"<<endl;
    	cout<<"'水':30%不受伤,克制火,被雷克制"<<endl;
    	cout<<"'木':被击败后,反伤自身伤害点伤害(真伤),克制土,被火克制"<<endl;
    	cout<<"'土':受到的伤害-1,克制雷,被木克制"<<endl;
    	cout<<"'克制':被克方伤害-1,克制方伤害+1"<<endl;
    }
    void maika(){
    	for(int i=1;i<=4;i++){
    		cout<<"编号:"<<jue[i].number<<"名字:"<<jue[i].name<<endl<<"攻击:"<<jue[i].gong<<" 血量:"<<jue[i].xue<<" 护盾:"<<jue[i].fang<<" 属性;"<<jue[i].shu<<" 价格:"<<jue[i].jin<<endl;
    	}
    	while(true){
    		cout<<"输入编号购买卡牌,输入-1退出"<<endl;
    		cin>>xuan3;
    		if(xuan3==1){
    			if(jue[1].have==0){
    				if(jue[1].jin<=money){
    					money-=jue[1].jin;
    					jue[1].have=1;
    					youpai++;
    					cout<<"成功购买:"<<jue[1].name<<endl;
    				}
    				else{
    					cout<<"穷鬼别来"<<endl;
    				}
    			}
    			else{
    				cout<<"你有了"<<endl;
    			}
    		}
    		else if(xuan3==2){
    			if(jue[2].have==0){
    				if(jue[2].jin<=money){
    					money-=jue[2].jin;
    					jue[2].have=1;
    					youpai++;
    					cout<<"成功购买:"<<jue[2].name<<endl;
    				}
    				else{
    					cout<<"穷鬼别来"<<endl;
    				}
    			}
    			else{
    				cout<<"你有了"<<endl;
    			}
    		}
    		else if(xuan3==3){
    			if(jue[3].have==0){
    				if(jue[3].jin<=money){
    					money-=jue[3].jin;
    					jue[3].have=1;
    					youpai++;
    					cout<<"成功购买:"<<jue[3].name<<endl;
    				}
    				else{
    					cout<<"穷鬼别来"<<endl;
    				}
    			}
    			else{
    				cout<<"你有了"<<endl;
    			}
    		}
    		else if(xuan3==4){
    			if(jue[4].have==0){
    				if(jue[4].jin<=money){
    					money-=jue[4].jin;
    					jue[4].have=1;
    					youpai++;
    					cout<<"成功购买:"<<jue[4].name<<endl;
    				}
    				else{
    					cout<<"穷鬼别来"<<endl;
    				}
    			}
    			else{
    				cout<<"你有了"<<endl;
    			}
    		}
    		else if(xuan3==-1){
    			return ;
    		}
    		else{
    			cout<<"别乱选"<<endl;
    		}
    	}
    }
    int main(){
    srand(static_cast<unsigned int>(time(0)));
    	cout<<"神秘人:欢迎来到我的游戏"<<endl;
    	cout<<"神秘人:这里充满了卡牌"<<endl;
    	cout<<"输入1以继续"<<endl;
    	cin>>xuan1;
    	cout<<"神秘人:作为你的引路人,我将给予你第一张牌"<<endl;
    	cout<<"输入(要或不要)"<<endl;
    	cin>>xuan1;
    	if(xuan1=="要"){
    		cout<<"获得卡牌:'小肘程'"<<endl;
    	}
    	else{
    		cout<<"看来卡牌与你无缘"<<endl;
    		return 0;
    	}
    	cout<<"请输入一些话来谢谢这个人"<<endl;
    	cin>>xuan1;
    	cout<<"我:"<<xuan1<<endl;
    	cout<<"神秘人:谢谢夸奖,我再给你1000块钱"<<endl;
    	cout<<"money+1000!"<<endl;
    	cout<<"神秘人:祝你玩得开心!"<<endl;
    	cout<<"HAHAHHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA"<<endl;
    	cout<<"输入1以继续"<<endl;
    	cin>>xuan1;
    	cout<<"       "<<"游戏正式开始"<<endl;
    	cout<<"--------------------------------------"<<endl;
    	cout<<"请输入你的名字"<<endl;
    	cin>>mizi;
    	cout<<"请输入你的年龄"<<endl;
    	cin>>nianling;
    	cout<<"去探索吧:"<<mizi<<"祝你好运!"<<endl;
    	for(int i=1;i<=20;i++){
    		jue[i].have=0;
    		jue[i].number=i;
    	}
    	while(true){
    		jue[1].name="小肘程";
    		jue[1].gong=3;
    		jue[1].fang=3;
    		jue[1].xue=3;
    		jue[1].jin=0;
    		jue[1].shu="无";
    		jue[1].have=1;
    		jue[2].name="大肘程";
    		jue[2].gong=4;
    		jue[2].fang=4;
    		jue[2].xue=4;
    		jue[2].jin=1000;
    		jue[2].shu="土";
    		jue[3].name="肘译程";
    		jue[3].gong=4;
    		jue[3].fang=0;
    		jue[3].xue=5;
    		jue[3].jin=1500;
    		jue[3].shu="雷";
    		jue[4].name="肘程王";
    		jue[4].gong=3;
    		jue[4].fang=5;
    		jue[4].xue=6;
    		jue[4].jin=2000;
    		jue[4].shu="水";
    		juee[1].name="小肘程";
    		juee[1].gong=3;
    		juee[1].fang=3;
    		juee[1].xue=3;
    		juee[1].jin=0;
    		juee[1].shu="无";
    		juee[1].have=1;
    		juee[2].name="大肘程";
    		juee[2].gong=4;
    		juee[2].fang=4;
    		juee[2].xue=4;
    		juee[2].jin=1000;
    		juee[2].shu="土";
    		juee[3].name="肘译程";
    		juee[3].gong=4;
    		juee[3].fang=0;
    		juee[3].xue=5;
    		juee[3].jin=1500;
    		juee[3].shu="雷";
    		juee[4].name="肘程王";
    		juee[4].gong=3;
    		juee[4].fang=5;
    		juee[4].xue=6;
    		juee[4].jin=2000;
    		juee[4].shu="水";
    		cout<<"1.去闯关"<<endl<<"2.查看状态"<<endl<<"3.买卡"<<endl<<"4.买技能"<<endl<<"5.属性介绍"<<endl;
    		cin>>xuan3;
    		if(xuan3==1){
    			if(youpai<2){
    				cout<<"至少有两张牌才能进入"<<endl;
    			}
    			else{
    				chuang(guan);
    			}
    		}
    		else if(xuan3==2){
    			zhuangtai();
    		}
    		else if(xuan3==3){
    			maika();
    		}
    		else if(xuan3==4){
    			if(guan<=2){
    				cout<<"过了两关后解锁技能"<<endl;
    			}
    		}
    		else if(xuan3==5){
    			shux();
    		}
    	}
    	return 0;
    }
    
    

    信息

    ID
    13833
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    3
    已通过
    0
    上传者