#include main() { int MetalMineLevel=0, CrystalMineLevel=0, DeuteriumSynthesizerLevel=0, SolarPlantLevel=0, RoboticsFactoryLevel=0, ShipyardLevel=0, ResearchLabLevel=0, maxMEnergy=0, maxCEnergy=0, maxDEnergy=0, MEnergy=0, CEnergy=0, DEnergy=0, Energy=0, EnergyD=0, MCDEnergy=0, hours=0, minutes=0, seconds=0, Rhours=0, Rminutes=0, Rseconds=0, T=0, i=0; float M=00, C=00, D=0, metal=0, crystal=0, deuterium=0, Smetal=0, Scrystal=0, Sdeuterium=0, metalS=0, crystalS=0, deuteriumS=0, Ametal=0, Acrystal=0, Adeuterium=0, time=0, RMtime=0, RCtime=0, RDtime=0, Rtime=0, a=1; char building; start: printf("What building's level do you increase now?\n"); scanf("%s", &building); building: switch (building) { case 'm': while(i=0) { Smetal=60*a; Scrystal=15*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); if((Smetal>M)||(Scrystal>C)) goto again; } break; case 'c': while(i=0) { Smetal=48*a; Scrystal=24*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); if((Smetal>M)||(Scrystal>C)) goto again; } break; case 'd': while(i=0) { Smetal=225*a; Scrystal=75*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); if((Smetal>M)||(Scrystal>C)) goto again; } break; case 's': while(i=0) { Smetal=75*a; Scrystal=30*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); if((Smetal>M)||(Scrystal>C)) goto again; } break; case 'r': while(i=0) { Smetal=400*a; Scrystal=120*a; Sdeuterium=200*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); if((Smetal>M)||(Scrystal>C)||(Sdeuterium>D)) goto again; } break; case 'h': while(i=0) { Smetal=400*a; Scrystal=200*a; Sdeuterium=100*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); if((Smetal>M)||(Scrystal>C)||(Sdeuterium>D)) goto again; } break; case 'l': while(i=0) { Smetal=200*a; Scrystal=400*a; Sdeuterium=200*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); if((Smetal>M)||(Scrystal>C)||(Sdeuterium>D)) goto again; } case'0': goto end; break; } again: i=0; a=1; while(iM)||(Scrystal>C)||(Sdeuterium>D)) goto againm; resources: metal=time*metalS+time*20/3600; crystal=time*crystalS+time*10/3600; deuterium=time*deuteriumS; M=M+metal; C=C+crystal; D=D+deuterium; if(time==Rtime) goto building; M=M-Smetal; C=C-Scrystal; D=D-Sdeuterium; T=T+time; hours=time/3600; minutes=time/60-hours*60; seconds=time-hours*3600-minutes*60; Rhours=T/3600; Rminutes=T/60-Rhours*60; Rseconds=T-Rhours*3600-Rminutes*60; printf("metal = %.2f\ncrystal = %.2f\ndeuterium = %.2f\ntime = h%d m%d s%d SumTime = h%d m%d s%d\n", M, C, D, hours, minutes, seconds, Rhours, Rminutes, Rseconds); switch (building) { case 'm': MetalMineLevel=MetalMineLevel+1; break; case 'c': CrystalMineLevel=CrystalMineLevel+1; break; case 'd': DeuteriumSynthesizerLevel=DeuteriumSynthesizerLevel+1; break; case 's': SolarPlantLevel=SolarPlantLevel+1; break; case 'r': RoboticsFactoryLevel=RoboticsFactoryLevel+1; break; case 'h': ShipyardLevel=ShipyardLevel+1; break; case 'l': ResearchLabLevel=ResearchLabLevel+1; break; } goto start; againm: if(Smetal>M) Ametal=Smetal-M; if(Scrystal>C) goto againc; else if(Sdeuterium>D) goto againd; else goto keepon; againc: Acrystal=Scrystal-C; if(Sdeuterium>D) goto againd; else goto keepon; againd: Adeuterium=Sdeuterium-D; keepon: RMtime=Ametal/(metalS+0.005555555555555555555556); RCtime=Acrystal/(crystalS+0.002777777777777777777778); if(deuteriumS!=0) RDtime=Adeuterium/deuteriumS; if(RMtime