为什么我在这里得到预期的 true/false 而不是列表或块?
Why am i getting the expected a true/false here rather than an a list or block here?
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]
这似乎事先没有产生任何错误,我很好奇这段代码中有什么不正确的地方以及如何纠正它。
你的代码中的问题是这个表达式(你一定已经更改了它,因为它无法编译):
[pcolor] n-of 2 neighbors4 = grey
n-of 2 neighbors4
returns 是一个代理集,由四个邻居的两个随机选择的补丁组成。为了得到它的颜色列表,你需要使用of
,所以把它改成:
[pcolor] of n-of 2 neighbors4 = grey
但是,该代理集的 [pcolor] return 是一个颜色列表;两个随机选择的邻居中的每一个。所以这里是将颜色列表与颜色(实际上只是一个数字)进行比较。那将永远 return false
.
你可能想要这样的东西:
count neighbors4 with [pcolor = grey] = 2
已编辑:谜团解开了。
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]
这似乎事先没有产生任何错误,我很好奇这段代码中有什么不正确的地方以及如何纠正它。
你的代码中的问题是这个表达式(你一定已经更改了它,因为它无法编译):
[pcolor] n-of 2 neighbors4 = grey
n-of 2 neighbors4
returns 是一个代理集,由四个邻居的两个随机选择的补丁组成。为了得到它的颜色列表,你需要使用of
,所以把它改成:
[pcolor] of n-of 2 neighbors4 = grey
但是,该代理集的 [pcolor] return 是一个颜色列表;两个随机选择的邻居中的每一个。所以这里是将颜色列表与颜色(实际上只是一个数字)进行比较。那将永远 return false
.
你可能想要这样的东西:
count neighbors4 with [pcolor = grey] = 2
已编辑:谜团解开了。