我可以用变量修改NetLogo命令吗?

sca*_*one 3 netlogo

示例开始:

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

并正在冗余重复只是不同品种的名字,我婉像做同样的程序(把品种名称作为参数,并与create-命令使用):

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没有定义.有任何想法吗 ?

Jen*_*enB 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 Code Online (Sandbox Code Playgroud)

你也可以run在构造一个合适的字符串后做一些事情,但我认为上面的内容更直接.