如何在运行时创建动态数量的品种? 我希望我的用户能够选择品种数量。
我想过像
这样的东西to setup_breeds
let j 1
while[j <= n_groups][
breed[j]
]
end
其中n_groups
是从滑块中取出的品种数。
但不幸的是,我不能在方法中使用breed
......
有什么想法吗?
谢谢!
答案 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;。