NetLogo-在2个正方形内发现海龟

NetLogo-在2个正方形内发现海龟,netlogo,Netlogo,我试图找出如何检查附近是否有海龟(我们称之为基地海龟或基地海龟)。我需要这包括对角线,因为我产卵的人周围这些基地,所以需要1个完整的广场周围的基地空。因此当产卵基地,我需要确保有没有其他2平方米内,包括对角线 我试着使用“半径中的海龟(2,3,4…)”,但它不起作用,因为半径命令似乎是圆形的。我该怎么做呢?NetLogo的邻居提供了海龟所在的补丁周围的8个补丁。你需要16块周围的补丁,还是8块就可以了 对于非包装世界中的邻居16,一个简单的过程可能是 to-report neighbors16

我试图找出如何检查附近是否有海龟(我们称之为基地海龟或基地海龟)。我需要这包括对角线,因为我产卵的人周围这些基地,所以需要1个完整的广场周围的基地空。因此当产卵基地,我需要确保有没有其他2平方米内,包括对角线


我试着使用“半径中的海龟(2,3,4…)”,但它不起作用,因为半径命令似乎是圆形的。我该怎么做呢?

NetLogo的
邻居
提供了海龟所在的补丁周围的8个补丁。你需要16块周围的补丁,还是8块就可以了

对于非包装世界中的邻居16,一个简单的过程可能是

to-report neighbors16
  ; can be called by a patch or a turtle
  ; assumes there is no wrapping of the world
  let xm max (list (pxcor - 2) min-pxcor)
  let xh min (list (pxcor + 2) max-pxcor)
  let ym max (list (pycor - 2) min-pycor)
  let yh min (list (pycor + 2) max-pycor)

  let ptchs no-patches
  foreach (range xm (xh + 1) 1) [x ->
    foreach (range ym (yh + 1) 1) [y ->
      set ptchs (patch-set patch x y ptchs)
    ]
  ]
  report ptchs with [self != patch [pxcor] of myself [pycor] of myself]
end
希望这有帮助,
Charles

一个相关的代码示例是NetLogo模型库的代码示例部分中的Moore&Von Neumann示例。(一个正方形的邻域称为“摩尔邻域”。)你可以说
让xm-pxcor-2
而不是
让base-patch和
让xm[pxcor]的base-2
。海龟可以直接访问它所站的补丁的变量。这个代码看起来会起作用,但在我看来,它也会非常慢,因为
带有…
的补丁必须检查世界上的每个补丁,看看它是否合格。根据赛斯一贯令人信服的观察,我编辑了我的答案(我想)效率更高。它可以叫海龟也可以叫补丁。很好!您可能还喜欢看Moore&Von Neumann示例中的代码,该示例做了一些类似的事情,但在点处使用了