Netlogo 如何获取刚创建的新海龟的id号?

Netlogo 如何获取刚创建的新海龟的id号?,netlogo,Netlogo,我有下面的代码,我孵化了一个新的特工 to t-of-slowdown [ es-poi ] if we-look > 0 [ set we-look (we-look - 1) if (we-look <= 0) [ if es-poi and (not any? events-here) [ hatch-events 1 [ set color green set size 5

我有下面的代码,我孵化了一个新的特工

to t-of-slowdown [ es-poi ]
  if we-look > 0 [
    set we-look (we-look - 1)
    if (we-look <= 0) [
      if es-poi and (not any? events-here) [
        hatch-events 1 [
          set color green
          set size 5
          set is-poi? true
          set new-poi true
          let m [[ end2 ] of cur-link] of myself
          move-to  m ]
        set events-x ([who] of events-here)
        show events-x
        set we-poi-var va-geometric (1 / 1500) + we-ticks poi
        set sera-poi false 
      ]
      set impregna true
      set color red
      set seguir true
      set we-look random-normal 120 20 ;time to watch an event
      ]
  ]
end   
这里的问题是变量
events-x
得到一个空列表
[]
。下一次步行者经过同一事件时,它会获得该事件的编号id

一定是出了什么事,但我猜不出是什么事。 如果有人能看一看并给我一些帮助,我将不胜感激

关于

您可以:

let child-who -1
hatch-events 1 [
  ...
  set child-who who
  ...
]
set events-x child-who
或:

遗憾的是,这两个都有点笨重。第二种方法避免了将
子对象
初始化为无意义的值,但它需要使用
我自己
,这是一种可能会让读者感到困惑的原语

您可以避免以下两个问题:

let parent self
hatch-events 1 [
  ...
  let child-who who
  ask parent [ set events-x child-who ]
  ...
]

(但请注意,无论如何,使用世卫组织的数字很少是解决任何问题的最佳和最惯用的方法。存储对海龟本身的引用几乎总是更好的。)

在设置事件-x之前,您必须
移动到
([谁…
-在walker有机会检查其补丁上的任何事件之前,您的新事件海龟似乎已经移动到了
m
。您是对的,最好不要使用代理的id,但我不知道表中的键是否(扩展名)可能是海龟。另一方面,变量
event-x
属于walker繁殖代理,而不是刚刚孵化的事件。那么,我可以在
hatch events 1[…]中设置
events-x
括号?。我已经修改了我的答案。非常感谢。我不想使用who数字,但我不知道如何将海龟单独用作表中的键。我一直在寻找解决方案,例如将海龟集转换为列表,并在
foreach
构造中使用它,但我想知道是否还有另一个ap我已经发布了一个关于这件事的新问题。
hatch-events 1 [
  ...
  let child-who who
  ask myself [ set events-x my-who ]
  ...
]
let parent self
hatch-events 1 [
  ...
  let child-who who
  ask parent [ set events-x child-who ]
  ...
]