求助!谁来帮我看看我这代码哪里出了问题?
  • 板块灌水区
  • 楼主yu25
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/9/1 12:44
  • 上次更新2024/9/1 17:26:36
查看原帖
求助!谁来帮我看看我这代码哪里出了问题?
1400707
yu25楼主2024/9/1 12:44
#include <iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<bits/stdc++.h>
#include <iomanip>
#include <vector>
#include <queue>
#include <map> 
using namespace std;
struct bl
{
	int iy,ix,iv;
	bool bh;
}aaaaa[7];
int a[101],b,c,d,zf=0;
char e;
bool ba=true,bf=true,bg=true,bc=true,bd=true,be=true; 
int main()
{
	for(int i=2;i<=7;i++)
	{
		aaaaa[i-1].bh=true;
		aaaaa[i-1].iv=50;
		aaaaa[i-1].ix=0;
		aaaaa[i-1].iy=1;
	}
	srand(time(0));
	cout<<" 请输入验证码\n";
	for(int i=1;i<=100;i++)
	{
		cin>>a[i];
		b+=a[i];
	}
	cin>>c>>e;
	d=e-70;
	if(b%d==c)
	{
		cout<<" 验证成功"<<endl;
	}
	else
	{
		cout<<" 验证失败.";
		return 0;
	}
	int zgjl,jb=100,bb=10,gnb=0,pb=0,hjb=0,qb=0,mj=1,kj=1,tsc=0,db=5,mb=0,cqxl=1000;
	aaaaa[1].iy=100;
	aaaaa[2].iy=300;
	aaaaa[3].iy=500;
	aaaaa[4].iy=1000;
	aaaaa[5].iy=3000;
	aaaaa[6].iy=5000;
	int iz=6;
	cout<<" 你重生到了大秦帝国."<<endl<<" 大秦帝国当前拥有民居1座"<<endl<<" 金币100."<<endl<<" 步兵10名"<<endl<<" 盾兵5名."<<endl<<" 城墙当前血量1000 "<<endl<<" 民居每回合可产出30金币."<<endl<<" 步兵攻击力为1(招募需花费3金币)"<<endl;
	cout<<" 盾兵攻击力为3(招募需花费7金币)\n 矛兵攻击力为5(招募需花费10金币). \n 当前科技水平为1级,升级到3级后可解锁弓弩兵.\n";
	for(int i=0;i<100;i++)
	{
		char f;
		iz=0;
		for(int iii=0;iii<6;iii++)
		{
			iz++;
			int iw=rand();
			aaaaa[iii].iy+=iw%aaaaa[iii].ix;
			aaaaa[iii].ix=aaaaa[iii].iy/2;
			int iu=rand()%500;
			aaaaa[iii].iv+=aaaaa[iii].iv*1.0*iu/100.0;
		}
		cout<<" 陨石将在"<<100-i<<" 回合后降落,请在陨石降落前消灭其余国家"<<endl;
		zgjl=(bb+gnb*8+db*3+mb*5+tsc*10+qb*20+pb*30+hjb*50)*(10+zf)/10;
		cout<<" 当前兵力为"<<zgjl<<endl;
		jb+=mj*30;
		cout<<" 目前拥有"<<jb<<" 金币";
		cout<<" 是否升级科技?升级科技需花费200金币,成功率为20%,升级请按s,不升级请按f.\n";
		cin>>f;
		int g=rand()%4;
		switch(f)
		{ 
			case 'f':break;
			case 's':if(jb<200)
				{
					cout<<" 金币不足\n";
					break;
				} 
				else if(g==3)
					{
						cout<<" 升级成功\n";
						jb-=200;
						kj++;
					 	cout<<" 当前科技水平为"<<kj<<" 级\n";
					 	cout<<" 还剩"<<jb<<" 金币\n";
					 }
					 else
					 {
					 	cout<<" 升级失败";
					 	jb-=200;
					 }
					 break;
		}
		if(kj==3&&ba)
		{
			cout<<" 恭喜解锁新兵种:弓弩兵(攻击力8,招募需花费15金币)\n 下一兵种需在科技水平升级至5级时解锁.\n";
			ba=false;
		}
		if(kj==5&&bf)
		{
			cout<<" 恭喜解锁新兵种:投石车(攻击力10,招募需花费18金币)\n 下一兵种需在科技水平升级至8级时解锁.\n";
			bf=false;
		}
		if(kj==8&&bc)
		{
			cout<<" 恭喜解锁新兵种:枪兵(攻击力20,招募需花费34金币)\n 下一兵种需在科技水平升级至10级时解锁.\n";
			bc=false;
		}
		if(kj==10&&bd) 
		{
			cout<<" 恭喜解锁新兵种:炮兵(攻击力30,招募需花费50金币)\n 下一兵种需在科技水平升级至15级时解锁.\n";
			bd=false;
		}
		if(kj==15&&be)
		{
			cout<<" 恭喜解锁新兵种:火箭兵(攻击力50,招募需花费75金币)\n 所有兵种都已解锁,升级至25级将增加战斗力\n";
			be=false;
		}
		if(kj==25&&bg)
		{
			cout<<" 战斗力提升50%\n";
			bg=false;
			zf=50;
		}
		cout<<" 建设一座民居需花费100金币.是否建设民居?是按s,否按f.\n";
		char h;
		cin>>h;
		int j; 
		if(h=='s')
		{
			cout<<" 请输入要建设的民居的座数.\n";
			cin>>j;
			if(jb<j*100) cout<<" 金币不足\n";
			else
			{
				jb-=j*100;
				mj+=j;
				cout<<" 当前拥有民居"<<mj<<" 座\n 金币"<<jb<<endl; 
			}
		}
		cout<<" 是否招募士兵?是按s,否按f\n";
		char aa;
		cin>>aa;
		if(aa=='s')
		{
			cout<<" 请输入要招募的兵种的类别.(按照解锁顺序编号,如步兵为1,盾兵为2,以此类推.)\n";
			int ia,ib;
			cin>>ib;
			cout<<" 请输入招募数量.\n";
			cin>>ia;
			switch(ib)
			{
				case 1:if(jb<ia*3)
					{
						cout<<" 金币不足.\n";
						break;
					} 
					else
					{
						cout<<" 招募成功.\n";
						jb-=ia*7;
						bb+=ia;
						break;
					}
				case 2:if(jb<ia*7)
					{
						cout<<" 金币不足.\n";
						break;
					}
					else
					{
						cout<<" 招募成功.\n";
						jb-=ia*7;
						db+=ia;
						break;
					}
				case 3:if(jb<ia*10)
					{
						cout<<" 金币不足.\n";
						break;
					}
					else
					{
						cout<<" 招募成功.\n";
						jb-=ia*10;
						mb+=ia;
						break;
					}
				case 4:if((jb<ia*15)||ba)
					{
						cout<<" 金币不足.\n";
						break;
					}
					else
					{
						cout<<" 招募成功.\n";
						jb-=ia*15;
						gnb+=ia;
						break;
					}
				case 5:if(jb<ia*18||bf)
					{
						cout<<" 金币不足.\n";
						break;
					}
					else
					{
						jb-=ia*18;
						tsc+=ia;
						cout<<" 招募成功\n";
						break;
					}
				case 6:if(jb<ia*34||bc) 
					{
						cout<<" 金币不足\n";
						break;
					}
					else
					{
						jb-=ia*34;
						qb+=ia;
						cout<<" 招募成功\n";
						break;
					}
				case 7:if(jb<ia*50||bd) 
					{
						cout<<" 金币不足\n";
						break;
					}
					else
					{
						cout<<" 招募成功\n";
						jb-=ia*50;
						pb+=ia;
						break;
					}
				case 8:if(jb<ia*75||be)
					{
						cout<<" 金币不足\n";
						break;
					}
					else
					{
						cout<<" 招募成功\n";
						jb-=ia*75;
						hjb+=ia;
						break;
					}
			}
		}
		cout<<" 是否对其他国家进行军事行动?是按s,否按n\n";
		char ab,ad;
		cin>>ab;
		if(ab=='s')
		{
			cout<<" 当前剩余国家:"<<iz<<endl<<" 这几个国家分别是:";
			for(int i=1;i<7;i++)
			{
				if(aaaaa[i].bh)cout<<i<<" 国、";
			}
			cout<<endl;
			cout<<" 请问要进行什么军事行动?侦查按z,进攻按j.\n";
			char ac;
			cin>>ac;
			ad=ac;
			int iq;
			switch(ac)
			{
				case 'z':cout<<" 请输入侦查国家的名称.";
						 cin>>iq;
						 if(iq>5||iq<0)
						 {
						 	cout<<" 该国家不存在.\n";
						 	break;
						 }
						 else if(aaaaa[iq].bh==false)
						 {
						 	cout<<" 该国家已灭亡.\n";
						 	break;
						 }
						 else
						 {
						 	cout<<" 该国家现有民居"<<aaaaa[iq].iv<<" 座\n 战斗力为"<<aaaaa[iq].iy<<endl;
						 	break;
						 }
				case 'j':cout<<" 请输入进攻国家的名称.\n";
						cin>>iq;
						if(iq>5||iq<0)
						{
						 	cout<<" 该国家不存在.\n";
						 	break;
						}
						else if(aaaaa[iq].bh==false)
						{
						 	cout<<" 该国家已灭亡.\n";
						 	break;
						}
						cout<<" 正在对该国家发动进攻...\n";
						int ip=rand()%100+1;
						int io=rand()%100+1;
						int in=zgjl*ip/100;
						int im=aaaaa[iq].iy*io/100;
						cout<<" 你方实际出动兵力"<<in<<endl<<" 对方出动兵力"<<im<<endl;
						int ik=in;
						in-=im;
						aaaaa[iq].iy-=ik;
						int il=rand()%100;
						mj=mj*il/100;
						if(in<0)
						{
						 	zgjl=zgjl-zgjl*ip/100;
						 	cout<<" 你惨败,出动的兵力全部阵亡."<<endl<<" 民居仅剩"<<mj<<" 座"<<endl<<" 战斗力仅剩"<<zgjl<<endl;
						}
						else if(in==0) 
						{
						 	zgjl=zgjl-zgjl*ip/100;
						 	cout<<" 你惨败,出动的士兵全部阵亡,但民居毫发无损.\n"<<" 当前战斗力:"<<zgjl<<endl;
						}
						else
						{
						 	if(in>aaaaa[iq].iy)
						 	{
						 		int ik=(rand()%100+1)*in/100;
						 		cout<<" 你大胜,一举歼灭了"<<iq<<" 国,获得民居"<<aaaaa[iq].iv<<" 座,己方兵力损失"<<ik<<endl;
						 		zgjl-=ik;
						 		aaaaa[iq].bh=false;
						 		aaaaa[iq].iy=0;
						 		aaaaa[iq].iv=0;
						 		aaaaa[iq].ix=0;
							}
							else
							{
								int ii=rand()%100+1;
								aaaaa[iq].iy-=ik;
								aaaaa[iq].ix/=2;
								zgjl-=zgjl*ip*(rand()%100+1)/10000;
								cout<<" 你小胜,获得民居"<<aaaaa[iq].iv*ii/100<<" 座\n 己方兵力还剩"<<zgjl<<endl;
								aaaaa[iq].iv-=aaaaa[iq].iv*ii/100;
								mj+=aaaaa[iq].iv*ii/100;
							}
						}
			}
		}
	} 
	return 0;
}
2024/9/1 12:44
加载中...