private void ExecuteBackOffStrategy(int backOffStrategyNumber) { List <IBasicInstruction> instructions = null; switch (backOffStrategyNumber) { case 1: instructions = InstructionsHelper.ConvertToBasicInstrucctions(new[] { "TR", "A" }); break; case 2: instructions = InstructionsHelper.ConvertToBasicInstrucctions(new[] { "TL", "B", "TR", "A" }); break; case 3: case 5: instructions = InstructionsHelper.ConvertToBasicInstrucctions(new[] { "TL", "TL", "A" }); break; case 4: instructions = InstructionsHelper.ConvertToBasicInstrucctions(new[] { "TR", "B", "TR", "A" }); break; default: return; } ExecuteInstructions(instructions); backOffStrategy = 0; }
static void Main(string[] args) { InputFile inputFile = JsonConvert.DeserializeObject <InputFile>(File.ReadAllText(@"d:\json\test1.json")); CleaningRobot bot = new CleaningRobot(inputFile.battery, inputFile.start.x, inputFile.start.y, inputFile.start.facing); List <IBasicInstruction> commandList = InstructionsHelper.ConvertToBasicInstrucctions(inputFile.commands); string[,] map = inputFile.map; Simulation simulation = new Simulation(bot, commandList, map); simulation.Run(); }
static void Main(string[] args) { string inputFile = args[0]; string outputFile = args[1]; InputJson inputJson = JsonConvert.DeserializeObject <InputJson>(File.ReadAllText(inputFile)); CleaningRobot bot = new CleaningRobot(inputJson); List <IBasicInstruction> commandList = InstructionsHelper.ConvertToBasicInstrucctions(inputJson.commands); Simulation simulation = new Simulation(bot, commandList); simulation.Run(); simulation.PrintResult(outputFile); }
public void Move() { var instructionsArray = InstructionsHelper.ParseInstructions(Instructions); foreach (var instruction in instructionsArray) { switch (instruction) { case 'F': if (RobotOrientation.CurrentOrientation == EOrientation.North) { RobotPosition.CurrentY++; } else if (RobotOrientation.CurrentOrientation == EOrientation.South) { RobotPosition.CurrentY--; } else if (RobotOrientation.CurrentOrientation == EOrientation.East) { RobotPosition.CurrentX--; } else if (RobotOrientation.CurrentOrientation == EOrientation.West) { RobotPosition.CurrentX++; } break; case 'L': RobotOrientation--; break; case 'R': RobotOrientation++; break; default: break; } } }