Пример #1
0
        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 Fly1004()
        {
            XmlConfigurator.Configure();
            //var vm = new VirtualMachine(117, 1001, 1001, TestData.Hohmann);
            var vm     = new HohmannsEngine(117, 1004);
            var driver = new Driver(new HohmannSolver());
            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());
        }