public List <NavigationPlan> DeserializeRoverNavigationPlanList(List <string> inputLineList) { List <NavigationPlan> roverNavigationPlanList = new List <NavigationPlan>(); for (int lineIndex = 0; lineIndex < inputLineList.Count; lineIndex += 2) { string roverInitialPositionInputLine = inputLineList[lineIndex]; Position roverInitialPosition = DeserializeRoverInitialPositionInput(roverInitialPositionInputLine); string roverRuleTypeSequenceInputLine = inputLineList[lineIndex + 1]; List <RuleType> roverRuleTypeList = DeserializeRoverRuleTypeInput(roverRuleTypeSequenceInputLine); NavigationPlan roverNavigationPlan = new NavigationPlan { InitialPosition = roverInitialPosition, RuleTypeList = roverRuleTypeList }; roverNavigationPlanList.Add(roverNavigationPlan); } return(roverNavigationPlanList); }
public void ExecuteNavigationPlan(Plateau plateau, NavigationPlan navigationPlan) { this.Plateau = plateau; this.Position = navigationPlan.InitialPosition; foreach (InstructionType instructionType in navigationPlan.InstructionTypeSequence) { switch (instructionType) { case InstructionType.M: this.MoveForward(); break; case InstructionType.L: this.TurnLeft(); break; case InstructionType.R: this.TurnRight(); break; } } }
public void NavigationPlan(Plateau plateau, NavigationPlan navigationPlan) { this.Plateau = plateau; this.Position = navigationPlan.InitialPosition; foreach (RuleType instructionType in navigationPlan.RuleTypeList) { switch (instructionType) { case RuleType.Move: this.MoveForward(); break; case RuleType.Left: this.TurnLeft(); break; case RuleType.Right: this.TurnRight(); break; } } }