假设我们有两个品种,cats
和dogs
。在go
上,我们希望cats
成为meow
,而dogs
成为bark
。 ask
使给定代理集中的代理以随机顺序运行代码块,这很棒。但是,如果这样做:
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/