【问题标题】:error: WITH expected this input to be an agentset, but got a patch instead错误:WITH 期望这个输入是一个代理集,但得到了一个补丁
【发布时间】:2021-06-01 15:29:09
【问题描述】:

从昨天开始,我一直在尝试编写以下代码:我有一个世界,每个补丁中都有 1 只海龟(sprout 命令)。我希望海龟检查它所在的补丁中的 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


    【解决方案1】:

    对于以后的问题,请仅显示相关代码 - 可能是出现错误的过程和调用它的过程。此外,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]
    

    【讨论】:

    • 您好 JenB,感谢您的帮助。我会注意并只放置有错误的代码部分。感谢您的提示
    • JenB,我去看了,没用。我想编写以下代码: l 有一个世界,每个补丁中有 1 只海龟(发芽命令)。我希望海龟检查它所在的补丁中的 8 个邻居。我是这样做的:让 neighWithVeg 计算补丁的邻居,这里有 [veg-value > 0.2]。但是出现了错误: WITH 期望这个输入是一个代理集,但得到了一个补丁。当我使用 of 时,它不会查看海龟所在补丁旁边的补丁
    • 我不明白你的评论。那是我的回答告诉您如何修复的代码。修复中没有of
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    相关资源
    最近更新 更多