假设我们有两个品种,catsdogs。在go上,我们希望cats成为meow,而dogs成为barkask使给定代理集中的代理以随机顺序运行代码块,这很棒。但是,如果这样做:

to go
  ask cats [ meow ]
  ask dogs [ bark ]
  tick
end
dogs总是放在cats之后。我们可以通过条件来解决这个问题:
to go
  ask turtles [
    if breed = cats [ meow ]
    if breed = dogs [ bark ]
  ]
  tick
end

但这很麻烦(请注意,对于更复杂的情况,您可以使用不想混入的品种将turtles替换为(turtle-set cats dogs))。有更好的解决方案吗?

最佳答案

使用任务:

turtles-own [noise]

to setup
  ...
  ask cats [ set noise task meow ]
  ask dogs [ set noise task bark ]
  ...
end

to go
  ...
  ask turtles [ run noise ]
  ...
end

关于netlogo - 如何以随机顺序将不同品种一起进行 `ask`育种,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23373963/

10-09 13:36