Exemplo n.º 1
0
        public void SaveRoverMovement(Guid roverId, SetRoverStateCommand roverStateCommand)
        {
            var rover = _rovers.FirstOrDefault(x => x.RoverId == roverId);

            rover.RoverFacingDirection = roverStateCommand.FacingDirection;
            rover.GridPosition.X       = roverStateCommand.XCoordinate;
            rover.GridPosition.Y       = roverStateCommand.YCoordinate;
        }
Exemplo n.º 2
0
        public SetRoverStateCommand Translate(Entities.Rover rover, RoverActionCommand roverActionCommand)
        {
            var result = new SetRoverStateCommand
            {
                XCoordinate = rover.GridPosition.X,
                YCoordinate = rover.GridPosition.Y
            };

            switch (roverActionCommand.RoverAction)
            {
            case RoverAction.TurnLeft:
                result.FacingDirection =
                    _roverActionToDirection.GetDirection(rover.RoverFacingDirection, roverActionCommand.RoverAction);
                break;

            case RoverAction.TurnRight:
                result.FacingDirection =
                    _roverActionToDirection.GetDirection(rover.RoverFacingDirection, roverActionCommand.RoverAction);
                break;

            case RoverAction.MoveForwardInTheDirectionRoverIsFacing:
                switch (rover.RoverFacingDirection)
                {
                case Direction.North:
                    result.YCoordinate--;
                    break;

                case Direction.South:
                    result.YCoordinate++;
                    break;

                case Direction.East:
                    result.XCoordinate++;
                    break;

                case Direction.West:
                    result.XCoordinate--;
                    break;
                }

                result.FacingDirection = rover.RoverFacingDirection;
                break;
            }

            return(result);
        }
Exemplo n.º 3
0
		public void PerformRoverAction(SetRoverStateCommand roverStateCommand)
		{
			GridPosition.Y = roverStateCommand.YCoordinate;
			GridPosition.X = roverStateCommand.XCoordinate;
			RoverFacingDirection = roverStateCommand.FacingDirection;
		}