예제 #1
0
        void MoveForward(IPlateau plateau, IRover rover, char command)
        {
            bool isValidMovementForward = MovementHelper.TryMoveForward(plateau.plateauCoordinate, rover.Position, out Coordinate nextCoordinate);

            if (isValidMovementForward)
            {
                rover.Position = new Position
                {
                    CompassDirection = rover.Position.CompassDirection,
                    Coordinate       = nextCoordinate
                };
            }
        }
예제 #2
0
        public void TryMoveForwardFalseNorth()
        {
            Plateau plateau = new Plateau(new Coordinate(3, 3));

            Position roverPosition = new Position
            {
                Coordinate       = new Coordinate(2, 3),
                CompassDirection = CompassDirection.North
            };

            bool result = MovementHelper.TryMoveForward(plateau.plateauCoordinate, roverPosition, out Coordinate nextCoordinate);

            Assert.False(result);
            Assert.Equal(default(Coordinate), nextCoordinate);
        }
예제 #3
0
        public void TryMoveForwardTrueNorth()
        {
            Plateau plateau = new Plateau(new Coordinate(3, 3));

            Position roverPosition = new Position
            {
                Coordinate       = new Coordinate(2, 2),
                CompassDirection = CompassDirection.North
            };

            Coordinate expectedValue = new Coordinate(2, 3);

            bool result = MovementHelper.TryMoveForward(plateau.plateauCoordinate, roverPosition, out Coordinate nextCoordinate);

            Assert.True(result);
            Assert.Equal(expectedValue, nextCoordinate);
        }