NetLogo: Topology: 当乌龟到达有端点的盒装或圆柱形世界的端点 (max-pxcor) 时发生错误

NetLogo: Topology: An error occurs when the turtle reaches the end (max-pxcor) of a boxed or cylindrical world with ends

我尝试了以下语法但出现了以下错误。

错误消息:TURTLES-ON 预期输入是代理或代理集,但得到的却是 NOBODY。

在出现错误信息的2D画面中,乌龟到达最右边的单元格时出错。如果 sintax "forward 1",这种情况下没有任何错误。但是我需要将 "forward 1 * 0.1" 语法与 "tick-advance 0.1".

一起使用

我已经看到下面的描述了,但还是没有解决now.Does有谁知道好方法吗?提前谢谢你。

https://ccl.northwestern.edu/netlogo/docs/programming.html#topology

以下是语法示例:

ask turtles with [xcor < max-pxcor][ 
if not any? turtles-on patch-ahead 1
[forward 1 * 0.1]] 

您 link 中引用的 can-move? 记者是一种方式(并引用了另一种方式:patch-ahead distance != nobody)。在 dictionary definition 中,它指出报告者报告 true 乌龟何时可以在不违反拓扑结构的情况下移动一段距离 - 换句话说,如果乌龟可以移动到现有的补丁。没有世界环绕的世界的任何补丁 "off the edge" 都不存在,因此 return nobody.

ticktick-advance 不应该考虑这个问题,因为 patch-ahead 的评估是由每只海龟独立于时间完成的。例如,这是一个根本没有 ticktick-advance 的玩具模型:

to setup
  ca
  crt 200 [
    move-to one-of patches with [ not any? turtles-here ]
    pd
  ]
  reset-ticks
end

to go
  let speed 1 * 0.1
  ask turtles [
    if can-move? speed and not any? other turtles-on patch-ahead speed [
      fd speed
    ]
  ]
end

请注意,我已完全关闭 world-wrapping,并得到如下所示的结果 - 没有错误,并且海龟停止移动是因为那里有一只海龟或者因为它们'我们撞到了世界的边缘: