使用代码示例中的过程时出现 Netlogo 错误 许多区域示例过程
Netlogo error when using procedure from code example Many Regions Example procedure
我是 Netlogo 的新手。我正在尝试使用库的许多区域示例中包含的代码。但是我在这个过程中遇到一个错误
to keep-in-region [ which-region ]
if region != which-region [
let region-min-pxcor first item (which-region - 1) region-boundaries
let region-max-pxcor last item (which-region - 1) region-boundaries
let region-width (region-max-pxcor - region-min-pxcor) + 1
ifelse xcor < region-min-pxcor [
set xcor xcor + region-width ]
[if xcor > region-max-pxcor [
set xcor xcor - region-width
]
]
]
我得到的错误是....有什么建议吗?提前致谢
-1 不等于 cero。
卖家 31 运行 ITEM 时出错
由程序 KEEP-IN-REGION 调用
由过程 ADJUST 调用
由程序 GO 调用
Botón 打电话给 'go'
您遇到的错误(“-1 不大于或等于零。”,一旦翻译成英语)是由于将 -1 作为 item
原语的索引传递造成的。
代码中有两行使用了item
:
let region-min-pxcor first item (which-region - 1) region-boundaries
let region-max-pxcor last item (which-region - 1) region-boundaries
如您所见,(which-region - 1)
是作为索引传递给 item
的表达式。如果你得到 -1
,那一定是因为 which-region = 0
.
在"Many Regions Example"模型中,区域0
是为不属于任何区域的小块保留的,即作为区域边界的小块。区域本身从 1 开始编号。
在您的代码中查找调用 keep-in-region
的位置,并确保您使用的区域编号介于 1 和您拥有的区域数量之间(含)。
免责声明:我最初编写了 "Many Regions" 代码示例。也许我可以为任何区域之外的补丁使用像 nobody
这样的值,并从 0 而不是 1 开始对实际区域进行编号,但我不记得我是否主动决定反对它或者只是不认为
我是 Netlogo 的新手。我正在尝试使用库的许多区域示例中包含的代码。但是我在这个过程中遇到一个错误
to keep-in-region [ which-region ]
if region != which-region [
let region-min-pxcor first item (which-region - 1) region-boundaries
let region-max-pxcor last item (which-region - 1) region-boundaries
let region-width (region-max-pxcor - region-min-pxcor) + 1
ifelse xcor < region-min-pxcor [
set xcor xcor + region-width ]
[if xcor > region-max-pxcor [
set xcor xcor - region-width
]
]
]
我得到的错误是....有什么建议吗?提前致谢
-1 不等于 cero。 卖家 31 运行 ITEM 时出错 由程序 KEEP-IN-REGION 调用 由过程 ADJUST 调用 由程序 GO 调用 Botón 打电话给 'go'
您遇到的错误(“-1 不大于或等于零。”,一旦翻译成英语)是由于将 -1 作为 item
原语的索引传递造成的。
代码中有两行使用了item
:
let region-min-pxcor first item (which-region - 1) region-boundaries
let region-max-pxcor last item (which-region - 1) region-boundaries
如您所见,(which-region - 1)
是作为索引传递给 item
的表达式。如果你得到 -1
,那一定是因为 which-region = 0
.
在"Many Regions Example"模型中,区域0
是为不属于任何区域的小块保留的,即作为区域边界的小块。区域本身从 1 开始编号。
在您的代码中查找调用 keep-in-region
的位置,并确保您使用的区域编号介于 1 和您拥有的区域数量之间(含)。
免责声明:我最初编写了 "Many Regions" 代码示例。也许我可以为任何区域之外的补丁使用像 nobody
这样的值,并从 0 而不是 1 开始对实际区域进行编号,但我不记得我是否主动决定反对它或者只是不认为