打勾后如何刷新补丁变量?

How to refresh a patch variable after tick?

我有一个补丁变量 X,我想在每次滴答后计算它。我基本上有一个条件,在每个滴答声中,我只想突出显示 X 值大于我设置的限制的那些补丁。

这是我编写的代码:

ask patches with [votes-with-benefit > 0] [ ifelse (b-c <= threshold) 
     [ set votes-with-benefit 0 set pcolor red ]
     [ set votes-with-benefit votes
       set pcolor scale-color white vote-share 0 max-voteshare ]
   ]

问题是在第一个 tick 之后,即使有值大于阈值的补丁它们仍然显示为红色而不是恢复为白色。

提前致谢。感谢帮助。

此致

听起来你需要切换过滤器和条件:

ask patches with [b-c <= threshold] [ ifelse  (votes-with-benefit > 0)
     [ set votes-with-benefit 0 set pcolor red ]
     [ set votes-with-benefit votes
       set pcolor scale-color white vote-share 0 max-voteshare ]
   ]

在任何情况下,正如您现在所拥有的那样,您永远不会重置那些您将其投票收益设置为零的人,因为您将它们过滤掉了。

我明白了。很抱歉发送了垃圾邮件。由于我使用两个不同的 'ask patches command' 一个接一个地编码了两个计数器参数,因此补丁变量在每次滴答后都没有更新。一旦我将它们组合成一个语句,它就开始工作了。谢谢