netlogo:最小补丁坐标单位和监控可用性?

netlogo: Minimum patch coordinate unit and monitoring availability?

我想将补丁space的最小坐标单位更改为小于一个,并进行监控。我们希望将最小空间单位设置为与 tick-advance 中相同的 tick 大小 n(例如 n=0.1)。这是一段代码,但它不起作用。谁能帮我?提前致谢。

globals [n] ; n<=1 i.e. n=0.1
; omitted
ask turtles [forward n]
tick-advance n

我发现自己和 Matteo 处在同一条船上——我不知道你想要做的事情在 NetLogo 的上下文中是可能的/有意义的。补丁的坐标是固定的(即,一个补丁是一个单位)但是任意的(Netlogo 中的 1 可以表示 1 m 或 1 km,具体取决于模型)。换句话说,一个补丁的坐标是离散的,而海龟可以连续移动space。所以你当然可以让乌龟以 1/10 的步长四处游荡:

globals [n]

to setup
  ca
  set n 0.1
  crt 10
  reset-ticks
end

to go
  ask turtles [
    forward n
  ]
  tick-advance n  
end

在上面 go 的一个 运行 之后,你可以想象在坐标 [xcor = 0.1, ycor = 0.1] 处有一只乌龟,尽管它仍然在 patch 0 0 上,因为 pxcor 值是整数。

看来您实际需要做的事情并没有按需要出现 - 您可以编辑您的问题以提供更多细节/上下文吗?或许了解您需要以这种方式建模背后的 为什么 将帮助提问者为您指明正确的方向。我个人很好奇:

  • 为什么要使用 tick-advance 而不是 tick
  • 你是如何实施你的每个补丁一只乌龟的限制的——换句话说,你能展示一个 Minimal Reproducible Example 吗?这可能会提示其他方法来处理您想要的东西。

这是一个时间与刻度相关的示例世界:

globals [ seconds ]

to setup
  ca
  set seconds 0
  resize-world 0 50 0 50
  ask patches with [ 
    floor (pxcor / 10) mod 2 + floor (pycor / 10) mod 2 = 1
  ] [
    set pcolor white
  ]
  crt 10
  reset-ticks
end

to go
  ask turtles [
    fd 1
  ]
  set seconds precision (seconds + 0.1) 2
  if seconds mod 1 = 0 [print ( word "It has been " seconds " seconds.")]
  tick
end