Netlogo 如何让每 1000 滴答发生一些事情

Ull*_*okk 4 netlogo

我有一个逃税模型,每轮都应该缴纳税款,例如每 1000 个滴答声。作为占位符,我有这个代码

ask traders with [ticks  = 1000 or ticks = 2000 or ticks = 3000];; Can this be set using a seed?
    [reset-parameters
       pay-taxes
       revise-behavior
       reset-turnover]
Run Code Online (Sandbox Code Playgroud)

在 SQL 中,我会做这样的事情:

FOR I IN 1..3000 LOOP 用报价单询问交易者 = I*1000

Netlogo 中是否有类似的功能?关于如何每 1000 滴答发生一次的任何其他提示?

Nic*_*tte 6

您自己的解决方案将起作用,但不是最佳的。

由于ticks是全局 NetLogo 报告器,而不是traders变量,返回的值ticks mod 1000 = 0不会因每个交易者而异。它要么true适用于所有交易者,要么false适用于所有交易者,因此放入with条款是没有用的(它将为每个交易者重新评估)。

这样做会更快(更清晰):

if ticks mod 1000 = 0 [
  ask traders [
    do-something
  ]
]
Run Code Online (Sandbox Code Playgroud)