在将项目添加到列表之前更新使用影线定义的项目值

Update item's value defined using hatch before adding it to a list

我想在将项目添加到海龟的邻居列表之前更改项目的值。 我正在舱口内设置项目属性的原始值。然后,我将它添加到我正在考虑的乌龟列表中。我现在想做的是更新原始值并添加少量(可能是 random-float 0.1),以便邻居列表具有属性 + random-float 0.1。 与我想更改的内容相关的代码部分是:

to action

       if breed = breed1 [

          hatch-item 1 [
            hide-turtle
            set attribute random-float 1

            set this-item self
            ask myself [
              set my-list fput this-item my-list
           ]
       ]
              ask link-neighbors with [breed = breed1] [
              set attribute (attribute + random-float 0.1)
              set my-list fput this-item my-list
]
...
]

特别是这些代码行:

              ask link-neighbors with [breed = breed1] [
              set attribute (attribute + random-float 0.1)
              set my-list fput this-item my-list
]

我想在这里做的是改变这个项目的值,更新它的原始值,然后再将它添加到乌龟的邻居列表中。 我试着考虑:

set attribute (attribute + random-float 0.1)

为了更新属性,但是在列表中这个项目的属性值被再次初始化,所以我有 0 + random-float 0.01.

你能告诉我如何从原始值更新属性值吗(不是创建新值;例如,如果我有属性的原始值 = 0.5 并且 random-float 1 等于0.2,我应该有一个等于 0.7) 的新值,然后将它作为此项添加到邻居的列表中?

更新:

这是当前输出的示例:

(turtle 2) (item 16) with attribute 0.147
neigh: 0 (item 16) with attribute 0 with random-float 0.2

但我想要的是:

(turtle 2) (item 16) with attribute 0.147
neigh: 0 (item 16) with attribute 0.347 with random-float 0.2

希望你能帮帮我。

谢谢

您如何测试该值,您拥有的代码将更改名为属性的变量的值。所以如果你认为它没有被改变,也许你是在向错误的海龟询问属性值?您可以通过在之前和之后执行打印语句来查看:

to action
  if breed = breed1 [
    hatch-item 1 [
      hide-turtle
      type "Old vlue: " print attribute
      set attribute random-float 1
      type "New value: " print attribute
      set this-item self
      ask myself [ set my-list fput this-item my-list ]
    ]
    ask link-neighbors with [breed = breed1] [
      set my-list fput this-item my-list
    ]
    ...
  ]