Ejemplo n.º 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();
        }
Ejemplo n.º 2
0
        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());
        }