2014-10-03 83 views
2

我希望你能幫助我。測試半徑中補丁的顏色

我嘗試測試半徑100中的一個修補程序是否爲黃色,但看起來不起作用。 事實上,情況似乎總是假的,雖然它不是這樣的......

ifelse ([pcolor] of patches in-radius 100 = yellow) 
[do something] 
[do something else] 

什麼解決的辦法? 謝謝。

回答

4

首先,你的代碼不工作的原因:[pcolor] of patches in-radius 100將返回該半徑內所有補丁的顏色列表。例如,該列表可能看起來像

[135 135 105 105 105 85 75 75 65 25 65 75 15]

除了方式方法更長。這些數字是NetLogo's color numbersyellow編號爲45。所以,基本上,你的條件變得

[135 135 105 105 105 85 75 75 65 25 65 75 15] = 45

顯然,大,巨大的名單是不一樣的事,作爲一個數字,因此,你總是假的。

爲了解決這個問題,要使用any?,像這樣:

ifelse (any? patches in-radius 100 with [ pcolor = yellow ]) ... 

patches in-radius 100給你一個代理集在半徑所有的補丁。 with [ pcolor = yellow ]只保留那些黃色的補丁。 any?只是檢查代理集中是否有任何內容。

+1

那麼清楚,如此之快! 謝謝sooooo多! (我不能因爲我的聲望而「投票」你的帖子,太糟糕了,sry:/) – 2014-10-03 23:02:37

+0

很高興幫助!不用擔心投票。感謝您將它標記爲正確!幫助人們跟蹤已經回答的內容。 – 2014-10-04 18:00:38