NetLogo:创建动态数量的品种

时间:2014-06-19 18:38:12

标签: netlogo

如何在运行时创建动态数量的品种? 我希望我的用户能够选择品种数量。

我想过像

这样的东西
to setup_breeds

  let j 1

  while[j <= n_groups][

    breed[j]

  ]

end

其中n_groups是从滑块中取出的品种数。 但不幸的是,我不能在方法中使用breed ......

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

您需要使用breed关键字明确声明每个品种,因此简短的答案是:不,您不能拥有动态数量的品种。

但你真的需要实际的NetLogo 品种吗?拥有不同品种的主要目的是为每个品种提供不同的变量。如果不是这种情况,也许你可以使用group-id乌龟变量。要为n_groups中的每一个创建一定数量的海龟,您可以执行以下操作:

turtles-own [ group-id ]

to setup
  clear-all
  let n_groups 10
  let n-turtles-per-group 5
  foreach n-values n_groups [ ? ] [
    create-turtles 10 [ set group-id ? ]
  ]
  ask turtles [ set label group-id ]
  ; do something with only turtles of, e.g., group 2:
  ask turtles with [ group-id = 2 ] [
    fd 5
  ]
end

如果您认为确实需要品种,请编辑您的问题以告诉我们原因,并且我们会查看是否可以为您找到解决方案。

旁注:

我使用foreach n-values n_groups [ ? ]来遍历您的 n 组。那相当于:

let i 0
while [ i < n_groups ] [
  set i i + 1
]

...但可以说更多&#34; NetLogo- ish &#34;。