首页 > 解决方案 > NetLogo 中的 path-here 命令

问题描述

我有基本的 NetLogo 命令问题。

我想要一组移动代理(海龟)访问补丁变量(称为 veg)并根据它们加载糖的能力(大小)收集一定量的(糖)。我正在尝试使用patch-here 命令,但是在NetLogo 字典中没有关于如何使用patch-here 的示例,我不知道如何向海龟提问以询问他们是否收集了根据你的体型,从那个贴片中提取足够的糖。有没有人对如何做或在哪里可以找到这些信息有任何建议?

 ask turtles [
    patch-here veg > 0.6 
    set sugar (sugar - metabolism)    
  ]

标签: netlogo

解决方案


要使用patch-here,您可以将代码修改为:

ask turtles
[ if [veg] of patch-here > 0.6 
  [ set sugar (sugar - metabolism)    
  ]
]

然而,每只海龟都位于一个补丁上——即使用于显示乌龟的图片很大并且跨越了许多补丁,乌龟本身也被认为位于一个点上,即在一个补丁内。NetLogo 巧妙地使用了坐标系——因为海龟只能在一个地方,如果你使用补丁变量名,它会假设你想要海龟所在的补丁。

因此,您可以将其简化为:

ask turtles
[ if veg > 0.6 
  [ set sugar (sugar - metabolism)    
  ]
]

请注意,当我删除of patch-here.

但是您可以将其进一步简化为:

ask turtles with [veg > 0.6]
[ set sugar (sugar - metabolism)    
]

所以如果你是patch-here用来获取乌龟所在的patch的变量值,那么你可以直接使用这个变量。的一个典型用途patch-here是在同一个补丁上找到其他海龟。


推荐阅读