首页 > 解决方案 > 错误:WITH 期望这个输入是一个代理集,但得到了一个补丁

问题描述

从昨天开始,我一直在尝试编写以下代码:我有一个世界,每个补丁中有 1 只海龟(发芽命令)。我希望海龟检查它所在的补丁中的 8 个邻居。我是这样做的:让 neighWithVeg 计算补丁的邻居,这里有 [veg-value > 0.2]。但是出现了错误: WITH 期望这个输入是一个代理集,但是得到了一个补丁

有人能帮我吗?

patches-own [
  veg-value
]

to setup
  clear-all
  reset-ticks
   ask patches [ 
    sprout 1 
  ]        
end


  to go
 ask turtles [
   neighboring
  ]
end

to neighboring
    let neighWithVeg count neighbors of patch-here of [veg-value > 0.2] ;; HERE THE ERROR
    ifelse neighWithVeg = 0
    [
      move
    ]

    [
      move-to one-of neighbors of patch-here with [veg-value > 0.2]
    ]  
end

提前致谢

标签: netlogo

解决方案


对于以后的问题,请仅显示相关代码 - 可能是有错误的过程和调用它的过程。此外,NetLogo 会告诉您哪一行产生了错误。

我猜这是产生错误的行:

let neighWithVeg count neighbors of patch-here with [veg-value > 0.2]

您实际上并不需要of patch-here,因为代码无论如何都是从相关补丁的角度来看的。但是如果你这样做了,那么你需要 [ ] 来表示of,所以它会是[neighbors] of patch-here

但我认为你想要的是:

let neighWithVeg count neighbors with [veg-value > 0.2]

推荐阅读