将NetLogo世界划分为几个随机部分

时间:2014-05-16 14:36:48

标签: patch netlogo

我正在尝试在NetLogo世界中创建许多代理组。我希望每个小组都位于一个没有重叠的特定区域。我可以想到,实现这一目标的简单方法可能是将世界分为几个部分。每个部分都包含许多补丁(例如100 +随机10,我可以设置),并用独特的颜色着色。然后让新创建的海龟移动到不同颜色的补丁。 请问有人告诉我如何实现这一目标或给出任何建议吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

一种策略是发展不同的地区。例如:

to grow-regions [ num-regions ]
  let region-num 0
  ask n-of num-regions patches [
    set pcolor item region-num base-colors
    set region-num region-num + 1
  ]
  while [ any? patches with [ pcolor = black ] ] [
    ask patches with [ pcolor != black ] [
      ask neighbors with [ pcolor = black ] [ set pcolor [ pcolor ] of myself ]
    ]
  ]
end

请注意,这最多可以绘制14个不同的区域(因为这是基色的数量)。

这导致像这样的区域:

Regions

编辑:误读您的评论。显然,这并不能让您控制区域的大小,但平均大小为count patches / num-regions