我对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]) []
感谢您的任何见解!
答案 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