public Controller(ProblemDescription problem) { if (problem.Solver is HohmannSolver) { vm = new HohmannsEngine(117, problem.ScenarioNumber); } else if (problem.Solver is MeetAndGreetSolver) { vm = new MeetAndGreetEngine(117, problem.ScenarioNumber, problem.ScenarioNumber); } else if (problem.Solver is EccentricMeetAndGreetSolver) { vm = new EccentricMeetAndGreetEngine(117, problem.ScenarioNumber); } else { throw new ArgumentException("неизвестный солвер!"); } solverDriver = new Driver(problem.Solver); simulationThread = new Thread(Simulate) { Name = "Симулятор", IsBackground = true }; simulationThread.Start(); }
public void Fly3001() { XmlConfigurator.Configure(); //var vm = new VirtualMachine(117, 1001, 1001, TestData.Hohmann); const int scenarioId = 3001; var vm = new EccentricMeetAndGreetEngine(117, scenarioId); var driver = new Driver(new EccentricMeetAndGreetSolver(scenarioId)); var dv = new Vector(0, 0); while (!driver.IsEnd()) { var outPorts = vm.RunTimeStep(new Vector(dv.x, dv.y)); dv = driver.RunStep(outPorts); //log.Info("TIME = " + time++); //if(vm.Mem[212] > 0) log.Info("GOOD_TIME = " + vm.Mem[212]); //log.Info("DISTANCE_TO_TARGET_ORBIT = " + vm.Mem[155]); } File.WriteAllBytes("res.bin", vm.CreateSubmission()); }