#include main() { int MetalMineLevel=0, CrystalMineLevel=0, DeuteriumSynthesizerLevel=0, SolarPlantLevel=0, RoboticsFactoryLevel=0, maxMEnergy, maxCEnergy, maxDEnergy, MEnergy, CEnergy, DEnergy, Energy, EnergyD, MCDEnergy, hours, minutes, seconds, Rhours, Rminutes, Rseconds, T=0, i, j; float M=500, C=500, D=0, metal, crystal, deuterium, Smetal, Scrystal, Sdeuterium=0, metalS, crystalS, deuteriumS, Ametal, Acrystal, Adeuterium, time, RMtime, RCtime, RDtime, Rtime, temp=0, a; char building; printf("Metal %d, Crystal %d, Deuterium %d, Solar %d, Robotics %d\n\n", MetalMineLevel, CrystalMineLevel, DeuteriumSynthesizerLevel, SolarPlantLevel, RoboticsFactoryLevel); start: printf("What building's level do you increase now?\n"); scanf("%s", &building); a=1; i=0; switch (building) { case 'm': while(i=0) { Smetal=60*a; Scrystal=15*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); } break; case 'c': while(i=0) { Smetal=48*a; Scrystal=24*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); } break; case 'd': while(i=0) { Smetal=225*a; Scrystal=75*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); } break; case 's': while(i=0) { Smetal=75*a; Scrystal=30*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); } break; case 'r': while(i=0) { Smetal=400*a; Scrystal=120*a; Sdeuterium=200*a; time=3600*(Smetal+Scrystal)/(2500*(1+RoboticsFactoryLevel)); } break; case'0': Ametal=7600-M; Acrystal=7000-C; Adeuterium=5100-D; goto keepon; break; } again: i=0; a=1; while(i0) metalS=metalS*MEnergy/maxMEnergy; if(maxCEnergy>0) crystalS=crystalS*CEnergy/maxCEnergy; if(maxDEnergy>0) deuteriumS=deuteriumS*DEnergy/maxDEnergy; EnergyD=-EnergyD; } if(j==1) { printf("metal/h = %.0f, crystal/h = %.0f, deuterium/h = %.0f, energy = %d\n", metalS*3600+20, crystalS*3600+10, deuteriumS*3600, EnergyD); printf("Metal %d, Crystal %d, Deuterium %d, Solar %d, Robotics %d\n\n", MetalMineLevel, CrystalMineLevel, DeuteriumSynthesizerLevel, SolarPlantLevel, RoboticsFactoryLevel); temp=0; j=0; goto start; } if((Smetal>M)||(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-Smetal; C=C+crystal-Scrystal; D=D+deuterium-Sdeuterium; if(temp!=0) time=temp; 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 = %.0f, crystal = %.0f, deuterium = %.0f\n", M, C, D); printf("time = h%d m%d s%d SumTime = h%d m%d s%d\n", 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; } j=1; goto again; 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: if(Ametal>0) RMtime=Ametal/(metalS+0.005555555555555555555556); else RMtime=0; if(Acrystal>0) RCtime=Acrystal/(crystalS+0.002777777777777777777778); else RCtime=0; if((Adeuterium>0)&&(deuteriumS!=0)) RDtime=Adeuterium/deuteriumS; else RDtime=0; if(RMtime