我应该使用哪个控件原语来避免编译过程中出现语法错误



我在这里试图做的是使具有特定颜色的某些补丁产卵或杀死海龟,而道路补丁(灰色)根据用户在界面中选择的内容对海龟的标题进行更改。我在代码中使用了while控件原语,但编译器会报告错误消息:"如果需要两个输入,一个TRUE/FALSE和一个命令块。"我希望在蓝色方块上繁殖的汽车的航向只有在它们位于蓝色方块上时才保持90,并在汽车沿着繁殖和杀戮补丁之间的道路行驶时更改为用户定义的任何航向。我应该如何更改while控制原语以防编译器出错?"if"是否更适合我想要实现的目标?

 to edit-world-secondary
ask turtles-on patches with [pcolor = grey]
[control-movement]  
 ask patches with [pcolor = blue]
 [ crt 10[ init-car]]
 while [turtles-on patches with [pcolor = blue] [ set heading 90] 
 ]
 ask turtles-on patches with [pcolor = orange][process-sinks]
 end

您可能想将其更改为ask

如果你想做什么,请蓝色补丁上的海龟将它们的航向设置为90

ask turtles with[pcolor = blue][set heading 90]

NetLogo的一个奇怪但有用的特性是海龟能够访问其所在补丁的变量。

在NetLogo中,避免while循环是一个很好的经验法则,它们在文化上不合适,通常可以用askrepeatforeachmap等更好地完成

如果你想让一位经纪人在每一轮都做一些事情,习惯上会在你的行动中询问他们。

如果你被迫使用while,这就是语法

while [ reporter ] [ commands]

(记者周围有括号)

还有写作。

http://ccl.northwestern.edu/netlogo/docs/dictionary.html#while

最新更新