我下载了一个工作模型,并正在对其进行调整以适应我的标准。我想禁用世界环绕,以便海龟在移动到初始屏幕时受到限制,但是当我这样做时,我收到一条错误消息,告诉我:OF预期输入是海龟代理集或补丁代理集或海龟或补丁,但没有得到任何人。
欢迎来到 StackOverflow!为了将来的参考,您的问题有点不完整,因为其他人很难在不看到您正在使用的代码的情况下帮助您。尝试包含足够的代码供其他人回答您的问题。我无法直接帮助解决您的问题,但我可以提供一些一般信息。
在 NetLogo 中,当启用和不启用世界环绕时,许多语言原语的行为都会发生变化。作为一个例子使用patch-ahead
,在双向环绕的世界中,此代码将始终成功:
; turtles will color themselves the color of the patch 1 unit away
ask turtles [
set color ([pcolor] of patch-ahead 1)
]
但如果在一个或两个方向上禁用环绕,the patch-ahead乌龟可以回来nobody https://ccl.northwestern.edu/netlogo/docs/dictionary.html#patch-ahead当乌龟前面没有补丁时,因为乌龟位于世界的边缘。在这种情况下,您要求 NetLogo 进行评估[pcolor] of nobody
,但这是不可能的,并且您会收到与您所描述的错误类似的错误。
要解决此问题,您必须仔细查看代码并查看这些错误发生的位置并进行适当的处理。以我为例:
ask turtles [
if patch-ahead 1 != nobody [
set color ([pcolor] of patch-ahead 1)
]
]
您可以阅读更多有关文档中 NetLogo 模型的世界拓扑 https://ccl.northwestern.edu/netlogo/docs/programming.html#topology.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)