Exemplo n.º 1
0
 private static void OnSpiderDeployed(ISpider spider)
 {
     Console.WriteLine("Spider position and orientation after deployment are");
     Console.WriteLine(spider.GetPosition().X);
     Console.WriteLine(spider.GetPosition().Y);
     Console.WriteLine(spider.GetOrientation().ToString());
 }
Exemplo n.º 2
0
        public void When_spider_is_moved_as_per_instructions_with_valid_data_final_spider_information_is_returned(
            int wallTop,
            int wallRight,
            Position spiderPosition,
            Orientation spiderOrientation,
            string spiderInstructions,
            int finalSpiderXCoordinate,
            int finalSpiderYCoordinate,
            Orientation finalSpiderOrientation)
        {
            _spider = new Spider(wallTop, wallRight, spiderPosition, spiderOrientation);
            foreach (var key in spiderInstructions)
            {
                switch (key)
                {
                case 'L':
                    _spider.TurnLeft();
                    break;

                case 'R':
                    _spider.TurnRight();
                    break;

                case 'F':
                    _spider.MoveFront();
                    break;
                }
            }

            var finalPosition = _spider.GetPosition();

            Assert.That(finalPosition.X, Is.EqualTo(finalSpiderXCoordinate));
            Assert.That(finalPosition.Y, Is.EqualTo(finalSpiderYCoordinate));
            Assert.That(_spider.GetOrientation(), Is.EqualTo(finalSpiderOrientation));
        }
Exemplo n.º 3
0
        private void ReadInputInformation()
        {
            var wallInformation = ReadInformation("wall information");

            if (!_inputValidator.IsWallInputValid(wallInformation))
            {
                throw new Exception("Wall information is not valid");
            }

            var spiderInformation = ReadInformation("spider information (L -Left R-Right T-Top B-Bottom)");

            if (!_inputValidator.IsSpiderInputValid(spiderInformation))
            {
                throw new Exception("Spider information is not valid");
            }

            var spiderInstructions = ReadInformation("spider instructions");

            if (!_inputValidator.IsSpiderInstructionsValid(spiderInstructions))
            {
                throw new Exception("Spider instructions are not valid");
            }

            var wallTop   = _inputParser.GetWallParameter(wallInformation, "WallTop");
            var wallRight = _inputParser.GetWallParameter(wallInformation, "WallRight");

            _spider = _inputParser.ParseSpiderInformation(spiderInformation, wallTop, wallRight);

            var spiderPosition = _spider.GetPosition();

            if (!_inputValidator.IsSpiderWithInWallCoordinates(wallTop, wallRight, spiderPosition.X, spiderPosition.Y))
            {
                throw new Exception("Spider initial position is not valid");
            }

            _instructions = _inputParser.ParseSpiderInstructions(spiderInstructions);
        }