Exemplo n.º 1
0
 private static void ProcessResultView(RoverEnvironmentConfig roverEnvironment)
 {
     Console.WriteLine(ViewSettings.ResultViewMessage);
     Console.WriteLine(RoverExplorationService.GetResult(roverEnvironment));
     Console.WriteLine(ViewSettings.FinalViewMessage);
     Console.ReadLine();
 }
Exemplo n.º 2
0
 public static void ProcessRequest(ViewType viewType, RoverEnvironmentConfig roverEnvironment)
 {
     try
     {
         if (viewType == ViewType.InitialView)
         {
             ProcessInitialView();
         }
         else if (viewType == ViewType.AreaDimensionsView)
         {
             ProcessAreaDimensionsView(roverEnvironment);
         }
         else if (viewType == ViewType.RoverInitialVectorView)
         {
             ProcessInitialRoverVectorView(roverEnvironment);
         }
         else if (viewType == ViewType.WalkView)
         {
             ProcessWalkView(roverEnvironment);
         }
         else if (viewType == ViewType.ResultView)
         {
             ProcessResultView(roverEnvironment);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(ViewSettings.UnexpectedErrorViewMessage);
         Console.ReadLine();
     }
 }
Exemplo n.º 3
0
        public static string GetResult(RoverEnvironmentConfig environmentConfig)
        {
            var roverFinalVector = GetFinalVector(environmentConfig);

            bool isValidPosition =
                roverFinalVector.Position.HorizontalCoordinate <= environmentConfig.AreaDimensions.Width &&
                roverFinalVector.Position.VerticalCoordinate <= environmentConfig.AreaDimensions.Height;

            return
                (isValidPosition.ToString() + ", "
                 + roverFinalVector.Orientation.ToString() + ", ("
                 + roverFinalVector.Position.HorizontalCoordinate.ToString() + ","
                 + roverFinalVector.Position.VerticalCoordinate.ToString() + ").");
        }
Exemplo n.º 4
0
        private static void ProcessWalkView(RoverEnvironmentConfig roverEnvironment)
        {
            Console.WriteLine(ViewSettings.WalkViewMessage);
            string inputText = Console.ReadLine();
            IEnumerable <MovementType> roverWalk = ViewModel.ViewModelService.GetValidWalk(inputText);

            if (roverWalk != null)
            {
                roverEnvironment.Walk = roverWalk;
                ProcessRequest(ViewType.ResultView, roverEnvironment);
            }
            else
            {
                ProcessAreaDimensionsView(roverEnvironment);
            }
        }
Exemplo n.º 5
0
        private static void ProcessInitialRoverVectorView(RoverEnvironmentConfig roverEnvironment)
        {
            Console.WriteLine(ViewSettings.RoverIntialVectorViewMessage);
            string inputText          = Console.ReadLine();
            Vector roverInitialVector = ViewModel.ViewModelService.GetValidVector(inputText);

            if (roverInitialVector != null)
            {
                roverEnvironment.RoverInitialVector = roverInitialVector;
                ProcessRequest(ViewType.WalkView, roverEnvironment);
            }
            else
            {
                ProcessInvalidRoverInitialVectorView(roverEnvironment);
            }
        }
Exemplo n.º 6
0
        private static void ProcessAreaDimensionsView(RoverEnvironmentConfig roverEnvironment)
        {
            Console.WriteLine(ViewSettings.AreaDimensionsViewMessage);
            string         inputText      = Console.ReadLine();
            AreaDimensions areaDimensions = ViewModel.ViewModelService.GetValidAreaDimensions(inputText);

            if (areaDimensions != null)
            {
                var inputDimensions = inputText.Trim().Split(' ');
                roverEnvironment.AreaDimensions = areaDimensions;

                ProcessRequest(ViewType.RoverInitialVectorView, roverEnvironment);
            }
            else
            {
                ProcessInvalidAreaDimensionsView(roverEnvironment);
            }
        }
Exemplo n.º 7
0
 private static void ProcessInvalidRoverInitialVectorView(RoverEnvironmentConfig roverEnvironment)
 {
     Console.WriteLine(ViewSettings.InvalidSyntaxPositionViewMessage);
     ProcessRequest(ViewType.RoverInitialVectorView, roverEnvironment);
 }
Exemplo n.º 8
0
 private static void ProcessInvalidAreaDimensionsView(RoverEnvironmentConfig roverEnvironment)
 {
     Console.WriteLine(ViewSettings.InvalidSyntaxForAreaDimensionsViewMessage);
     ProcessAreaDimensionsView(roverEnvironment);
 }
Exemplo n.º 9
0
 private static void ProcessInvalidWalkView(RoverEnvironmentConfig roverEnvironment)
 {
     Console.WriteLine(ViewSettings.InvalidSyntaxForMovementViewMessage);
     ProcessRequest(ViewType.WalkView, roverEnvironment);
 }
Exemplo n.º 10
0
        private static Vector GetFinalVector(RoverEnvironmentConfig environmentConfig)
        {
            return

                (environmentConfig.Walk.Aggregate(environmentConfig.RoverInitialVector, (vector, movement) => vector + movement));
        }