Ejemplo n.º 1
0
        private void DoNextResearch()
        {
            if (ResearchInfos.Count == 0)
            {
                Console.WriteLine("all researches completed...");
                return;
            }

            var researchInfo = ResearchInfos.Dequeue();
            var rover        = ConnectToRover();

            rover.ResearchEnded += RoverResearchEnded;
            rover.Research(researchInfo);
        }
Ejemplo n.º 2
0
        public void ValidateCommandsAndEnqueueResearchInfos()
        {
            while (UnprocessedCommands.Count > 0)
            {
                var command = UnprocessedCommands.Dequeue();

                if (Mars == null)
                {
                    throw new Exception("space station should connect to mars");
                }

                if (Mars.Plateau == null)
                {
                    var plateauMetrics = _commandParser.GetPlateauMetrics(command);
                    Mars.Plateau = DefinePlateau(plateauMetrics [0], plateauMetrics [1]);
                }

                var researchInfos = _commandParser.GetResearchInfos(command);
                foreach (var info in researchInfos)
                {
                    ResearchInfos.Enqueue(info);
                }
            }
        }