限制在一个圆圈内生成的海龟数量

Limiting the number of turtles spawned in a circle

这里是 NetLogo 新手。我试图限制在一个圆圈中生成的海龟数量,这样海龟就不会相互重叠。到目前为止,我已经尝试了 this question 中的方法,其中有一个所有补丁的列表,每个补丁都会生成海龟,但对于我的圈子来说,海龟仍然太多了。出于好奇,我尝试仅在 turtle number mod PRIME NUMBER0 时生成,但生成的不仅仅是两只海龟,还有更多!在我的例子中,补丁本身并不重要,因为我的模型不是真正的空间模型。 resize-worldset-patch-size 是为了保持大小一致,因为没有它们,可视化结果非常小,我还没有想出如何重置它。

这是我的最小工作示例:

breed [people person]

to setup
  clear-all
  make-people
end

to make-people
  resize-world 0 30 0 30
  set-patch-size 20
  ask patches
  [
    ask people
    [
      set shape "circle"
    ]
    sprout-people (1)
    layout-circle people 15
  ]
end

这是它产生的结果:

如何让海龟间隔开而不是挤在一起?

你的基本问题是每个补丁都创建一个人 (sprout),然后将其放入圆圈中。创建海龟代理有3种不同的命令,sprout是patch创建海龟的地方,通常用来控制新海龟的位置。由于 space 对你没有意义,更好的方法是使用 create 命令并简单地指定你想要的数量,增加或减少数量直到间距满足你的需要。试试这个,然后更改 50 直到你得到你想要的。

to make-people
  create-people 50
  [ set shape "circle"
  ]
  layout-circle people 15
end

对于世界的大小-您可以进入界面并使用设置下拉框来设置您想要的尺寸。