如何在运行时创建动态数量的品种?
我希望我的用户能够选择品种的数量。
我想到了类似的东西
to setup_breeds
let j 1
while[j <= n_groups][
breed[j]
]
end
其中
n_groups
是从滑块获取的品种数量。但是不幸的是我不能在方法中使用
breed
...有任何想法吗?
谢谢!
最佳答案
您需要使用 breed
关键字明确声明每个品种,因此简短的答案是:不,您不能拥有动态数量的品种。
但是,您真的需要实际的NetLogo品种吗?拥有不同品种的主要目的是使每个品种具有不同的变量。如果不是这种情况,也许您可以摆脱group-id
turtle变量的困扰。要为每个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
]
...但可以说更多的是“NetLogo-ish”。