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