示例#1
0
        private static string PerformSimulation(
            LawnMowerState initialState,
            LawnSize lawnSize,
            LawnMowerCommand[] commands)
        {
            var simulator = new LawnMowerMovementSimulator();

            try
            {
                var lawnMowerSteps =
                    simulator.SimulateMovement(
                        initialState,
                        lawnSize,
                        commands);

                var finalState = lawnMowerSteps
                    .Last();

                return $"{finalState.Position.X} {finalState.Position.Y} {finalState.Direction.Sign}";
            }
            catch (CannotMoveOutsideLawnBoundariesException)
            {
                return "Mower tried to cut rare plants";
            }
        }
 private LawnMowerState PerformCommand(
     LawnMowerState state,
     LawnMowerCommand command)
 {
     switch (command)
     {
         case LawnMowerCommand.TurnRight:
             return state.GetStateAfterRightTurn();
         case LawnMowerCommand.TurnLeft:
             return state.GetStateAfterLeftTurn();
         case LawnMowerCommand.MoveForward:
             return state.GetStateAfterMoveForward();
         default:
             throw new UnknownLawnMowerCommandException();
     }
 }
        private LawnMowerState PerformCommand(
            LawnMowerState state,
            LawnMowerCommand command)
        {
            switch (command)
            {
            case LawnMowerCommand.TurnRight:
                return(state.GetStateAfterRightTurn());

            case LawnMowerCommand.TurnLeft:
                return(state.GetStateAfterLeftTurn());

            case LawnMowerCommand.MoveForward:
                return(state.GetStateAfterMoveForward());

            default:
                throw new UnknownLawnMowerCommandException();
            }
        }