如何阻止代理到达其他netlogo

时间:2015-04-06 22:59:16

标签: netlogo

我需要一个代理人的功能来对抗他们在相互接触时停止的代理人 我试过这个psodo代码 的

ask turtles [
   if heading = 90 with [pcolor = red]  [ stop ]
  ]
end

的 非常感谢。

1 个答案:

答案 0 :(得分:1)

如果前面的补丁(无论乌龟朝向哪个方向)是红色,以下代码将停止:

ask turtles
[ if [ pcolor ] of patch-ahead 1 = red [stop]
]

如果您想要一个特定的方向,例如您的代码意味着heading = 90,那么您需要以下内容:

ask turtles
[ if [ pcolor ] of patch-at-heading-and-distance 90 1 = red [stop]
]

响应额外的信息,检查应该是乌龟而不是补丁...这个代码没有假设每个补丁上的海龟数量,并且如果至少有一只这样的海龟是红色则停止。

ask turtles
[ if any? turtles-at 1 1 with [ color = red ] [stop]
]