Netlogo 如何解决错误:观察者无法运行代码
运行以下代码时:Netlogo 如何解决错误:观察者无法运行代码,netlogo,Netlogo,运行以下代码时: to modify let elements n-values 7 [(list)] ask turtles [ let a item leader elements set a lput (who + 1) a set elements replace-item leader elements a ] let CS [] let prevCS CS set CS 0 foreach elements [ show element
to modify
let elements n-values 7 [(list)]
ask turtles [
let a item leader elements
set a lput (who + 1) a
set elements replace-item leader elements a
]
let CS []
let prevCS CS
set CS 0
foreach elements [
show elements
print ("elements")
if length ? > 0 [
set S lput (sort ?) S
set CS CS + getValue (sort ?)
]
]
end
我得到的错误如下:
this code can't be run by the observer
error while observer running IF
在线:
如果长度是多少?>0
我不知道如何纠正错误,任何帮助都将不胜感激
提前谢谢你。普山
正如JenB所建议的,您真的应该升级到NetLogo 6.1.1。版本5.3.1不再受支持,其他人回答您的问题将越来越困难
也就是说,让我推测一个答案。在代码段中
if length ? > 0 [
set S lput (sort ?) S
set CS CS + getValue (sort ?)
]
您可以引用变量S和过程getValue。S在中没有定义,所以它必须是一个全局变量(应该可以),或者是一个turtles自己的变量(不可以)。观察员无法直接访问它。类似地,getValue可能被设计为由海龟而不是观察者运行,这也会给您带来相同的错误
希望这有帮助,
Charles您使用的是旧版本的NetLogo吗?这个语法已被取代。这将使我们很难提供帮助,因为我们无法测试Netlogo 5.3.1中的任何代码