测试半径中色块的颜色

时间:2014-10-03 22:21:09

标签: colors netlogo turtle-graphics agent

我希望你能帮助我。

我尝试测试半径为100的一个补丁是否为黄色,但似乎不起作用。 事实上,这种情况似乎总是错误的,但事实并非如此......

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

解决方案是什么? 谢谢。

1 个答案:

答案 0 :(得分: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?只是检查代理集中是否有任何内容。