2017-03-22 76 views
0

我對Netlogo相當陌生,並且在如何設置一個複雜的if語句時苦苦掙扎。該聲明適用於海龜,條件是其他海龜生活在同一地區並擁有房屋。Netlogo if if with statement and other

我已經試過以下的迭代,但至今尚未成功:

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

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

謝謝你的任何見解!

回答

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 
+0

謝謝你,它的工作! – James