获取补丁自己的值

Get patches-own values

如何获得给定 netlogo 补丁的价值。我只能获取补丁自己的名称(使用 .word.program.patchesOwn()),但我不知道如何获取它们的值。

谢谢

您想要所有补丁的值,或特定补丁的值,还是什么?

我假设您想要来自特定补丁的值。

假设,首先:

import org.nlogo.headless.HeadlessWorkspace;

HeadlessWorkspace workspace = HeadlessWorkspace.newInstance();
workspace.open("models/Sample Models/Biology/Ants.nlogo");
workspace.command("setup");

那么除了 HeadlessWorkspace.report 之外,您不需要任何其他东西来从补丁中检索值,例如:

double food = ((Double) workspace.report("[food] of patch -17 -19")).doubleValue();

另一个更麻烦的解决方案涉及直接访问引擎数据结构:

Patch p = workspace.world().getPatchAt(-17, -19);    
int foodIndex = workspace.world().program().patchesOwn().indexOf("FOOD");
double food = ((Double) p.getPatchVariable(foodIndex)).doubleValue();