Netlogo 如何链接代理的操作?

Netlogo 如何链接代理的操作?,netlogo,Netlogo,我正在尝试用3组代理编程模拟-A、B、C。 关键是集合A中的代理可以选择是否执行操作。 如果他们决定不执行该操作,模拟将停止。 当他们决定执行该操作时,模拟将继续到下一步,其中集合B中的代理也可以决定是否执行该操作。这里也一样。 集合C中的代理也可以决定是否执行操作,但在这里,两种情况下的模拟都停止。 这是我的密码: ask turttles [ if breed = set A [ ifeslse do?= false [ set lazy]

我正在尝试用3组代理编程模拟-A、B、C。 关键是集合A中的代理可以选择是否执行操作。 如果他们决定不执行该操作,模拟将停止。 当他们决定执行该操作时,模拟将继续到下一步,其中集合B中的代理也可以决定是否执行该操作。这里也一样。 集合C中的代理也可以决定是否执行操作,但在这里,两种情况下的模拟都停止。 这是我的密码:

ask turttles [
if breed = set A [ ifeslse do?= false [ set lazy]
                                        stop]
[ if breed = set B [ ifelse do1?= false [ set lazy]
                                         stop]
[ask other turtles [ if breed = set C [ ifelse do 2? = false [ set lazy
                                                               stop] ] 
                                       [set done
                                        stop] ]
                                        ]
                                      ]
                                    ]

代码不是很好,我需要一些东西来链接这三个步骤,因为当我导出world时,我只从第一步获得数据

如果在
ask
中执行
停止
,它不会导致整个模拟停止。它只会阻止当前海龟执行其余的
ask

我想你想要的东西更像:

globals [done?]

to setup
  ...
  set done? false
  ...
end

to go
  if done? [ stop ]
  ifelse ...
    [ ask A [ do-action ] ]
    [ set done? true ]
  ifelse ...
    [ ask B [ do-action ] ]
    [ set done? true ]
  ifelse ...
    [ ask C [ do-action ] ]
    [ set done? true ]
  ...
end
但我在猜测,因为很难从你的描述中看出你的真实意图。(特别是因为您没有包含真正的代码——您问题中的code无法通过编译器。)