从示例开始:
to make-new-car [freq x y head ]
if (random-float 100 < freq) and not any? turtles-on patch x y [
create-cars 1 [
setxy x y
set heading head
set color one-of base-colors
]
]
end
但是我希望有更多的汽车品种 - 而不仅仅是一个汽车品种。我还想保持简单,并坚持做这个(第一个功能与上面的相同):
to make-new-car [freq x y head ]
if (random-float 100 < freq) and not any? turtles-on patch x y [
create-cars 1 [
setxy x y
set heading head
set color one-of base-colors
]
]
end
to make-new-carSE [freq x y head ]
if (random-float 100 < freq) and not any? turtles-on patch x y [
create-carsSE 1 [
setxy x y
set heading head
set color one-of base-colors
]
]
end
并且冗余通过重复相同的程序只是使用不同的品种名称我想做一些像这个(将品种名称作为参数并使用它创建 - 命令):
to make-new-car [freq x y head breed-name]
if (random-float 100 < freq) and not any? turtles-on patch x y [
create-breed-name 1 [
setxy x y
set heading head
set color one-of base-colors
]
]
end
然而,Netlogo抱怨create-breed-name
未定义。有什么想法吗?
答案 0 :(得分:5)
最简单的方法是create-turtles
然后set breed breed-name
。这是一个例子。
breed [ testers tester ]
to make-turtles [ breed-name ]
create-turtles 1 [ set breed breed-name ]
end
to setup
make-turtles testers
end
在构造适当的字符串后,您也可以使用run
做一些事情,但我认为上面的内容更直接。
答案 1 :(得分:2)
和Jen的回答一起去。到目前为止,它是实现您所需要的最直接的方式。
然而,只是为了它,这是用 <TreeViewItem>
<TreeViewItem.Style>
<Style TargetType="TreeViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>
</TreeViewItem.Style>
<TreeViewItem.Header>
<DockPanel LastChildFill="False" HorizontalAlignment="Stretch">
<TextBlock Text="Pizza" DockPanel.Dock="Left"/>
<TextBlock Text="5,00 €" DockPanel.Dock="Left"/>
</DockPanel>
</TreeViewItem.Header>
</TreeViewItem>
做到这一点的一种方法:
run
请注意,我将新创建的乌龟应该执行的命令放在匿名过程中(使用NetLogo 6.0.1语法),然后在传递给{{1}的字符串中运行 }。您也可以将所有内容放在一个大字符串中,但随后您将放弃编译器检查,语法突出显示,速度等。
但是,无论如何,不要做任何这样的事情。使用Jen的方法。