创建一个 "itinerary" 补丁代理集

Create an "itinerary" agentset of patches

我正在构建一个模型,其中海龟 "search" 根据不同的搜索条件为资源修补程序的子集。

我正在尝试构建报告,return 一个经过排序的补丁列表或代理集,然后海龟可以将其用作其搜索的路线。

出于某种原因,我无法将行程存储在 turtle 拥有的变量中。

示例记者是:

to-report availability

    let sorted-patches sort-on [ ( (space - occupants) / space ) ] patches with [space > 0]

    report sorted-patches

end 

当我在控制台中执行 show availability 时,它会打印出我所期望的,一个有序的补丁列表。

但如果我这样做

let test-variable availability
show test-variable

它returns

ERROR: Nothing named TEST-VARIABLE has been defined. 

不知何故这是一个范围问题,我可以不使用 let 作为观察者吗?

是字体的问题吗?我不能将代理集存储为命名的海龟拥有的变量吗?

有没有办法用列表而不是代理集来做同样的事情?

谢谢

根据您的描述,这是一个范围界定问题。但问题不在于你试图将 let 与观察者一起使用,而是 let 的范围。 NetLogo 在您尝试做的意义上并不是真正的交互式 - let 创建的变量在行尾被丢弃。

如果您键入 let test 3,按回车键,然后键入 show test,您将得到相同的错误。但是,如果您键入 let test 3 show test,那么它将 return 3.

你为什么需要控制台中的这个?如果它用于测试,那么您可以按照您已经找到的方式查看它 - 只需 show availability。如果您在模型为 运行 时将它用于海龟,则它不是交互式的,没有问题。