如何识别具有某些条件的邻居

How to identify neighbors with some conditions

我正在尝试建立一个连接海龟的玩具模型。每只乌龟都有一个随机信念[0,1],我想实现一些条件:

基本设置:

turtles-own [belief]

to setup
  ca
  reset-ticks
  crt 5 [
   set shape "person"
   layout-circle turtles 5
   set belief random-float 1
   ]

ask turtles [ create-links-with min-n-of 2 other turtles [distance myself] ]

end

这将创建一个 5 海龟循环网络。现在他们必须检查他们(两个)最近邻居的信念。我试过这个:

to go

ask turtles with [one-of link-neighbors with [belief > .5]] [

set belief belief + .1
]

end

所以基本的想法是,每只乌龟都有一个信念 > .5 的相连邻居,必须将 .1 添加到自己的信念中。我已经尝试了 ask turtles with 行的几种变体,但它总是向我显示此类运行时错误:WITH expected a true/false value from (turtle 0),但却得到了 (turtle 2)。有任何想法吗?提前谢谢你。

one-ofreturns一个代理。在这种情况下不适合使用 with 评估条件 - 条件不完整,因为行 ask turtles with [one-of link-neighbors with [belief > .5]] 翻译(粗略地)为“要求具有条件 turtle x 的海龟做某事”。

我想你想要的是使用 count 来计算相信的数量 turtlesany? 来评估代理集是否存在:

to go-1
  ask turtles with [ (count link-neighbors with [belief > 0.5]) > 0 ] [
    set belief belief + 0.1
  ]
end

to go-2
  ask turtles with [ any? link-neighbors with [ belief > 0.5 ] ] [
    set belief belief + 0.1
  ]  
end