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); }
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); }