为什么我在这里获得预期的真/假,而不是这里的列表或块?

时间:2015-02-20 19:06:43

标签: netlogo

   I have the code:

 if [pcolor] of patch-here = grey and  [pcolor] n-of 2 neighbors4 =       grey   [set  X X + 1 set  agentset-number = N] 

这似乎不会产生任何错误,我很好奇这段代码中的错误以及如何纠正错误。

1 个答案:

答案 0 :(得分:3)

代码中的问题是这个表达式(你必须更改它,因为它不能编译):

[pcolor] n-of 2 neighbors4 = grey

n-of 2 neighbors4返回一个代理集,该代理集由两个随机选择的四个邻居的补丁组成。要获取其颜色列表,您需要使用of,因此请将其更改为:

[pcolor] of n-of 2 neighbors4 = grey

然而,该agentset的[pcolor]返回一个颜色列表;一个用于两个随机选择的邻居中的每一个。所以这里是你将颜色列表与颜色(实际上只是一个数字)进行比较。这将始终返回false

您可能需要以下内容:

count neighbors4 with [pcolor = grey] = 2

编辑:神秘解决了。