NetLogo - 随机设置 - 每个补丁的随机值 - 错误
NetLogo - Random setup - Random value to each patch - Error
作为设置过程的一部分,我尝试使用滑块来设置将要显示并分配随机值的色块密度。界面上的滑块密度范围为 0 到 100,补丁的随机值是使用界面上的输入设置的。这通常会在区域 go 4 中设置。因此,如果设置了 50%,该过程将为 50% 的补丁分配一个随机值。
当我这样做时,出现以下错误:"Expected command" 并且变量 'error-count' 在代码中突出显示。
;; The density of patches to be set with a random value is set using variable init-errors on interface.
;; Every patch uses a task which reports a random value.
;; The random value is set using variable error-count on interface
to setup-random
ask patches [
if (random-float 100.0) < init-errors
[setup task random error-count]
]
end
我不完全清楚您正在使用的任务语法(特别是,为什么 setup
位于该行的开头)或者您为什么要在此处使用任务 - 但这可能是编码风格的差异。但是 NetLogo 编译器让你知道它期望在单词 random 之后有一个命令但是得到了一个值。由于 random 确实期望之后有一个值,我认为这与设置和任务元素有关。这是做你想做的事情的另一种方法,这可能更容易。我还将非零错误补丁变为绿色,以便您可以看到它们。此代码假定您有在问题描述中定义的两个滑块。
patches-own [errors]
to setup-random
ask patches [
if (random-float 100.0) < init-errors
[ set errors random error-count
set pcolor green ]
]
end
您需要更改:
setup task random error-count
到
setup task [ random error-count ]
任何时候任务主体不仅仅是一个单一的原语("concise task syntax"),它需要用方括号括起来。您收到的错误消息是因为 task random
是有效语法; NetLogo 将其解释为 task [ random ? ]
的缩写。然后它不知道如何处理以下 error-count
,因此出现错误。
作为设置过程的一部分,我尝试使用滑块来设置将要显示并分配随机值的色块密度。界面上的滑块密度范围为 0 到 100,补丁的随机值是使用界面上的输入设置的。这通常会在区域 go 4 中设置。因此,如果设置了 50%,该过程将为 50% 的补丁分配一个随机值。
当我这样做时,出现以下错误:"Expected command" 并且变量 'error-count' 在代码中突出显示。
;; The density of patches to be set with a random value is set using variable init-errors on interface.
;; Every patch uses a task which reports a random value.
;; The random value is set using variable error-count on interface
to setup-random
ask patches [
if (random-float 100.0) < init-errors
[setup task random error-count]
]
end
我不完全清楚您正在使用的任务语法(特别是,为什么 setup
位于该行的开头)或者您为什么要在此处使用任务 - 但这可能是编码风格的差异。但是 NetLogo 编译器让你知道它期望在单词 random 之后有一个命令但是得到了一个值。由于 random 确实期望之后有一个值,我认为这与设置和任务元素有关。这是做你想做的事情的另一种方法,这可能更容易。我还将非零错误补丁变为绿色,以便您可以看到它们。此代码假定您有在问题描述中定义的两个滑块。
patches-own [errors]
to setup-random
ask patches [
if (random-float 100.0) < init-errors
[ set errors random error-count
set pcolor green ]
]
end
您需要更改:
setup task random error-count
到
setup task [ random error-count ]
任何时候任务主体不仅仅是一个单一的原语("concise task syntax"),它需要用方括号括起来。您收到的错误消息是因为 task random
是有效语法; NetLogo 将其解释为 task [ random ? ]
的缩写。然后它不知道如何处理以下 error-count
,因此出现错误。