コード例 #1
0
        public override (Position.Position position, IState state, bool isMatched) GetPositionAndState(ICommand command)
        {
            if (command == null)
            {
                throw new ArgumentException(nameof(command));
            }
            if (command.GetType().Name != nameof(Move))
            {
                return(Calculator.GetPositionAndState(command));
            }
            var newLocation = GetNewLocation(Robot.CurrentPosition);

            return(new Position.Position(newLocation, Robot.CurrentPosition.Direction), StateFactory.CreateMoved(Robot), true);
        }