示例#1
0
        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;
        }
示例#2
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();
        }
示例#3
0
        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);
        }
示例#4
0
        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;
                }
            }
        }