Netlogo如果声明与我自己和其他人

时间:2017-03-22 23:47:11

标签: netlogo

我对Netlogo很陌生,并且正在努力设置一个有点复杂的if语句。该声明适用于海龟,条件是其他海龟生活在同一地区并拥有房屋。

我已尝试过以下的迭代,但尚未成功:

if (one-of other turtles with [region = [region] of myself and house? = True]) []

if (other turtles with [region = [region] of myself and house? = True]) []

感谢您的任何见解!

1 个答案:

答案 0 :(得分:2)

如果您需要在问题中插入代码,请查看工具栏中的“代码示例”按钮。您可以突出显示您的代码并单击按钮 - 超级方便。

你的第二次尝试非常接近。快速修复是添加any?原语,以便告诉Netlogo您想要在这种情况下评估代理集“其他海龟”。事实上,你实际上并没有用if评估任何东西 - 有点像说“如果我所在地区的海龟有房子”,而不是“如果我所在的地区有任何海龟有房子“。

to check-region
  ask one-of turtles [
    if any? other turtles with [ region = [region] of myself and house? = true ] [
      set color white
    ]
  ]
end

如果您需要评估更具体的数字,可以使用count之类的设置阈值 - 例如:

to check-region-count
  ask one-of turtles [
    if count other turtles with [ region = [region] of myself and house? = true ] > 3 [
      set color white
    ]
  ]
end