public static RoboticTraveller GetCurrentLocation(RoboticTraveller traveller, string array, string topRightCorner)
        {
            decimal xsurface = 0;
            decimal ysurface = 0;

            for (int i = 0; i < topRightCorner.Split(' ').Length; i++)
            {
                if (i == 0)
                {
                    xsurface = decimal.Parse(topRightCorner.Split(' ')[i]);
                }
                else if (i == 1)
                {
                    ysurface = decimal.Parse(topRightCorner.Split(' ')[i]);
                }
            }

            ushort tempDirection = DirectionService.FindDegree(DirectionService.GetDegree(traveller.Direction));

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == 'L' || array[i] == 'R')
                {
                    tempDirection = DegreeUpdate(tempDirection, array[i]);
                }
                else if (array[i] == 'M')
                {
                    if (tempDirection == 90 || tempDirection == 270)
                    {
                        traveller.YApsis = AxisUpdate(tempDirection, traveller.YApsis);
                    }
                    else
                    {
                        traveller.XApsis = AxisUpdate(tempDirection, traveller.XApsis);
                    }
                }
            }

            if (traveller.XApsis > xsurface)
            {
                traveller.XApsis = xsurface;
            }
            else if (traveller.XApsis < 0)
            {
                traveller.XApsis = 0;
            }
            if (traveller.YApsis > ysurface)
            {
                traveller.YApsis = ysurface;
            }
            else if (traveller.YApsis < 0)
            {
                traveller.YApsis = 0;
            }

            traveller.Direction = DirectionService.GetDegree(tempDirection);
            return(traveller);
        }
Example #2
0
        public static List <RoboticTraveller> ResultList(PostForm Model)
        {
            List <RoboticTraveller> list = new List <RoboticTraveller>();

            RoboticTraveller firstTraveller  = new RoboticTraveller();
            RoboticTraveller secondTraveller = new RoboticTraveller();

            firstTraveller  = LocationService.GetDefaultLocation(firstTraveller, Model.FirstRoboticTravellerLocation);
            secondTraveller = LocationService.GetDefaultLocation(secondTraveller, Model.SecondRoboticTravellerLocation);

            firstTraveller  = LocationService.GetCurrentLocation(firstTraveller, Model.FirstArray, Model.TopRightCorner);
            secondTraveller = LocationService.GetCurrentLocation(secondTraveller, Model.SecondArray, Model.TopRightCorner);

            list.Add(firstTraveller);
            list.Add(secondTraveller);
            return(list);
        }
 public static RoboticTraveller GetDefaultLocation(RoboticTraveller traveller, string defaultLocation)
 {
     for (int i = 0; i < defaultLocation.Split(' ').Count(); i++)
     {
         if (i == 0)
         {
             traveller.XApsis = decimal.Parse(defaultLocation.Split(' ')[i]);
         }
         else if (i == 1)
         {
             traveller.YApsis = decimal.Parse(defaultLocation.Split(' ')[i]);
         }
         else if (i == 2)
         {
             traveller.Direction = char.Parse(defaultLocation.Split(' ')[i].ToUpper());
         }
     }
     return(traveller);
 }